觀察Linux 的效能,觀察Linux效能
分析linux的效能,可以協助我們解決應用的問題,調整系統架構,最佳化產品。先看看Linux自身的系統結構
系統調用以上是使用者域,以下為核心域。
Linux上基本的效能監測工具如下:1)top 或Htop,讀取CPU,DRAM,Virtual Memory的資訊,能夠觀察每個進程的狀況,主要是CPU的使用方式2)iostat 讀取Disk,IO控制器,塊裝置, 觀察Disk 的IO統計資料3)mpstat 讀取CPU 資訊,觀察那些活動的線程資訊4)vmstat 讀取虛擬記憶體,調度器,系統調用及CPU,觀察虛擬記憶體的統計資訊,dstat類似只是螢幕輸出多了點色彩5) free 讀取DRAM和虛擬記憶體,觀察記憶體的使用方式
進一步,linux的效能監測工具還有:1)sar 觀察系統活動例如分頁讀寫,塊裝置統計,啟動並執行隊列統計,同時涵蓋了了vmstat,iostat等的功能2)netstat 各種網路通訊協定的統計3)pidstat 觀察進程故障4)strace 跟蹤系統調用及所佔資源5)tcpdump 監聽網路資料包,並提供檔案輸出,共wireshark做進一步的分析6)blktrace 統計塊裝置的IO事件7)iotop 觀察每個進程的IO使用狀況8)slabtop 觀察核心中slab分配器的使用9)sysctl 系統核心參數調優的工具10)/proc 呵呵, 可以直接讀來源資料了
更強大的inux的效能監測工具就是我最愛的效能指標perf ,它讀取CPU,記憶體,IO匯流排,網路控制機等資訊,可以觀察一個可執行程式的效能指標,抽樣採集IO,cpu的活動資料,用一下,感覺。。。
Linux的系統性可以怎檢測?
網路使用中,我們需要簡單的監測一下Linux系統的:CPU負載、記憶體消耗情況、幾個指定目錄的磁碟空間、磁碟I/O、swap的情況還有就是網路流量。 今天上海快網介紹Linux的系統效能監測參數擷取方法。
Linux下的效能偵查工具其實都有很多。
mrtg就是一個很不錯的選擇。不過用mrtg就要裝sysstat、apache、snmp、perl之類的東西。而且安裝也要好幾個步驟,似乎比較麻煩。本來也想直接調用sar、vmstat之類的命令,parse一下結果就算了。哪知道發現不同的版本的linux這些命令的結果也都是不一樣。既然要按版本 parse它們的結果,那還不如直接去系統裡面獲得算了。於是研究了一下sysstat和gkrellm的原始碼,找到監測效能的資料所在。
1、CPU
在檔案"/proc/stat"裡面就包含了CPU的資訊。每一個CPU的每一tick用在什麼地方都在這個檔案裡面記著。後面的數字含義分別是: user、nice、sys、idle、iowait。有些版本的kernel沒有iowait這一項。這些數值表示從開機到現在,CPU的每tick用在了哪裡。
就是cpu0從開機到現在有 256279030 tick用在了user消耗,11832528用在了sys消耗。所以如果想計算單位時間(例如1s)裡面CPU的負載,那隻需要計算1秒前後數值的差除以每一秒的tick數量就可以了。
2、記憶體消耗
檔案"/proc/meminfo"裡麵包含的就是記憶體的資訊,還包括了swap的資訊。
3、磁碟空間
從gkrellm的原始碼看,這個是一個很複雜的資料。
4、磁碟I/O
磁碟I/O的資料也同樣比較複雜,有些版本看/proc/diskstats,有些版本看/proc/partitions,還有些版本至今我也不知道在那裡看……不過可以看到資料的版本也像CPU那樣,需要隔一段時間取值,兩次取值的差就是流量。
5、網路流量
網路流量也是五花八門,不過基本上都可以在/proc/net/dev裡面獲得。同樣也是需要兩次取值取其差作為流量值。
參考資料:上海快網
怎分析linux的性可以指標
LR
監控
UNIX/Linux
系統方法
一、準備工作:
1.
可以通過兩種方法驗證伺服器上是否配置
rstatd
精靈:
①使用
rup
命令,它用於報告電腦的各種統計資訊,其中就包括
rstatd
的配置資訊。使用命
令
rup
10.130.61.203,
此處
10.130.61.203
是要監視的
linux/Unix
伺服器的
IP
,如果該命令返回相關的
統計資訊。則表示已經配置並且啟用了
rstatd
守護進程;若未返回有意義的統計資訊,或者出現一
條錯誤報表,則表示
rstatd
守護進程尚未被配置或有問題。
②使用
find
命令
#find / -name rpc.rstatd,
該命令用於尋找系統中是否存在
rpc.rstatd
檔案,如果沒有,說明系統沒
有安裝
rstatd
精靈。
2
.
linux
需要下載
3
個包:
(
1
)
rpc.rstatd-4.0.1.tar.gz
(
2
)
rsh-0.17-14.i386.rpm
(
3
)
rsh-server-0.17-14.i386.rpm
3
.下載並安裝
rstatd
如果伺服器上沒有安裝
rstatd
程式(一般來說
LINUX
都沒有安裝)
,需要下載一個包才有這個服
務
,
包
名
字
是
rpc.rstatd-4.0.1.tar.gz.
這
是
一
個
源
碼
,
需
要
編
譯
,
下
載
並
安
裝
rstatd
(
可
以
在
sourceforge.net/projects/rstatd
這個地址下載)下載後,開始安裝,安裝步驟如下:
tar -xzvf rpc.rstatd-4.0.1.tar.gz
cd rpc.rstatd-4.0.1/
./configure
—配置操作
make
—進行編譯
make install
—開始安裝
rpc.rstatd
—啟動
rstatd
進程
“
rpcinfo -p
”命令來查看當前系統是否已經啟動了
rstatd
守護進程
只要保證
Linux
機器上的進程裡有
rstatd
和
xinetd
這二個服務就可以用
LR
去監視了,通過以下
兩點可以檢查是否啟動:
1
)檢查是否啟動
: rsh server
監聽的
TCP
是
514
。
[root@mg04 root]# netstat -an |grep 514
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN
如果能看到
514
在監聽說明
rsh
伺服器已經啟動。
2
)檢查是否啟動
: rstatd
輸入命令
: rpcinfo -p
如果能看到類似如下資訊:
程式版本協議連接埠
100001
5
udp
937
rstatd
100001
4
udp
937
rstatd
100001......餘下全文>>