3.Sysstat 工具集介紹(續)

tonykorn97發表於2006-04-24

3.Sysstat 工具集介紹;


3.1 sadc 工具,


sadc 位於 /usr/lib/sa目錄中,如果你沒有設定可執行路徑,要用絕對路徑來執行比較方便 ,/usr/lib/sa/sadc;sadc 是把資料寫在一個二進位制的檔案中,如果想檢視資料內容,需要用sadf工具來顯示;


sadc 的用法;

/usr/lib/sa/sadc [ -d ] [ -F ] [ -I ] [ -L ] [ -V ] [ interval [ count ] ] [ outfile ]


引數說明:


-d 報告硬碟設定的相關統計;
-F 強制把資料寫入檔案;
-I 報告所有系統中斷資料;
interval 表示時間間隔,單位是秒,比如3 ;
count 統計資料的次數,也是一個數字;
outfile 輸出統計到outfile檔案;

注意:此工具中的引數都是可選的,如果沒有指定任何引數,比如 /usr/lib/sa/sadc - ,則會輸出資料到 /var/log/sa/ 目錄下的一個檔案中。我們要透過sadf 或sar工具來檢視;


[root@localhost beinan]# /usr/lib/sa/sadc -
[root@localhost beinan]# ls /var/log/sa 注:列出所有sa目錄下的檔案,根據檔案的時間來判斷哪個檔案是最新的;
[root@localhost beinan]# sar -f /var/log/sa/sa12

[root@localhost beinan]# sadf /var/log/sa/sa12

舉例:我們想把sadc收集到的資料寫到一個指定的檔案中;

[root@localhost ~]# /usr/lib/sa/sadc 1 10 sa000[root@localhost ~]# sar -f sa000Linux 2.6.15-1.2054_FC5 (localhost.localdomain) 2006年05月12日09時15分30秒 CPU %user %nice %system %iowait %idle09時15分31秒 all 3.00 0.00 0.00 1.00 96.0009時15分32秒 all 0.00 0.00 0.00 0.00 100.0009時15分33秒 all 0.00 0.00 0.00 0.00 100.0009時15分34秒 all 0.00 0.00 0.00 0.00 100.0009時15分35秒 all 0.00 0.00 0.00 0.00 100.0009時15分36秒 all 0.00 0.00 0.00 0.00 100.0009時15分37秒 all 0.00 0.00 0.00 0.00 100.0009時15分38秒 all 0.00 0.00 0.00 0.00 100.0009時15分39秒 all 0.00 0.00 0.00 0.00 100.00Average: all 0.33 0.00 0.00 0.11 99.56
註解:我們用sadc 收集系統動態資料,讓它收集1秒之內的10次動態資訊; 然後透過sar 工具來檢視系統的狀態。也可以用 sadf 來檢視所收集的資料,但不是太直觀。您自己嘗試一下看看。檢視sa000檔案,用 sadf sa000 ;


3.2 sar 工具;


sar 工具比較強大,既能收集系統CPU、硬碟、動態資料,也能顯示動態顯示,更能檢視二進位制資料檔案;sar 的應用比較多,而且也比較複雜,資料更為精確。我們只瞭解一下常用的內容就行,大多數內容我們瞭解就行;

用法:


sar [引數選項]

引數說明:


-A 顯示所有歷史資料,透過讀取/var/log/sar 目錄下的所有檔案,並把它們分門別類的顯示出來;
-b 透過裝置的I/O中斷讀取設定的吞吐率;
-B 報告記憶體或虛擬記憶體交換統計;
-c 報告每秒建立的程式數;
-d 報告物理塊裝置(儲存裝置)的寫入、讀取之類的資訊,如果直觀一點,可以和p引數共同使用,-dp
-f 從一個二進位制的資料檔案中讀取內容,比如 sar -f filename
-i interval 指定資料收集的時間,時間單位是秒;
-n 分析網路裝置狀態的統計,後面可以接的引數有 DEV、EDEV、NFS、NFSD、SOCK等。比如-n DEV
-o 把統計資訊寫入一個檔案,比如 -o filename ;
-P 報告每個處理器應用統計,用於多處理器機器,並且啟用SMP核心才有效;
-p 顯示友好裝置名字,以方便檢視,也可以和-d 和-n 引數結合使用,比如 -dp 或-np
-r 記憶體和交換區佔用統計;
-R
-t 這個選項對從檔案讀取資料有用,如果沒有這個引數,會以本地時間為標準 讀出;
-u 報告CPU利用率的引數;
-v 報告inode, 檔案或其它核心表的資源佔用資訊;
-w 報告系統交換活動的資訊; 每少交換資料的個數;
-W 報告系統交換活動吞吐資訊;
-x 用於監視程式的,在其後要指定程式的PID值;
-X 用於監視程式的,但指定的應該是一個子程式ID;

sar 應用舉例;

例項一: 如果只用sar 命令,sar就是讀取 /var/log/sa目錄下最近系統狀態檔案。


[root@localhost ~]# sar
[root@localhost ~]# sar -A 注:讀取/var/log/sa目錄下所有檔案資料;

如果我們想知道CPU的利用率;動態更新;下面的例子是每秒更新一次資料,總共更新五次;

[root@localhost ~]# sar -u 1 5Linux 2.6.15-1.2054_FC5 (localhost.localdomain) 2006年05月12日時間 CPU 利用率 nice值 系統佔用 IO佔用 空閒11時19分34秒 CPU %user %nice %system %iowait %idle11時19分35秒 all 2.97 0.00 0.00 0.00 97.0311時19分36秒 all 11.11 0.00 9.09 0.00 79.8011時19分37秒 all 21.78 0.00 6.93 0.00 71.2911時19分38秒 all 15.00 0.00 0.00 0.00 85.0011時19分39秒 all 8.00 0.00 0.00 0.00 92.00Average: all 11.78 0.00 3.19 0.00 85.03
註解:

CPU:表示機器內所有的CPU;
%user 表示CPU的利用率;
%nice 表示CPU在使用者層優先順序的百分比,0表示正常;
%system 表示當系統執行時,在使用者應用層上所佔用的CPU百分比;
%iowait 表示請求硬碟I/0資料流出時,所佔用CPU的百分比;
%idle 表示空閒CPU百分比,值越大系統負載越低;

您可以CPU利用率的動態資訊輸出到一個文字檔案中,然後透過more 來檢視。


[root@localhost ~]# sar -u 1 5 > sar000.txt
[root@localhost ~]# more sar000.txt

也可以輸出到一個二進位制的檔案中,然後透過sar來檢視;


[root@localhost ~]# sar -u 1 5 -o sar002
[root@localhost ~]# sar -f sar002

注:如果您把資料透過-o filename 輸出到一個二進位制的檔案中,是不能用檔案內容檢視工具more 、less或cat來檢視的,應該用sar工具來檢視,要加-f引數;

例項二:檢視網路裝置的吞吐情況;

比如我們讓資料每秒更新一次,總共更新十次;


[root@localhost ~]# sar -n DEV 2 5
時間 IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s

第一欄位:時間;IFACE:裝置名;rxpck/s:每秒收到的包;rxbyt/s:每秒收到的所有包的體積;txbyt/s:每秒傳輸的所有包的體積;rxcmp/s:每秒收到資料切割壓縮的包總數;txcmp/s :每秒傳輸的資料切割壓縮的包的總數;rxmcst/s: 每秒收到的多點傳送的包;
如果我們從事提取eth0裝置(也就是網路卡eth0)的資訊;我們應該用grep 來過濾。然後再顯示出來;


[root@localhost ~]# sar -n DEV 2 5 |grep eth0
11時52分37秒 eth0 1.00 1.00 97.51 97.51 0.00 0.00 0.00
11時52分39秒 eth0 1.01 1.01 98.49 98.49 0.00 0.00 0.00
11時52分41秒 eth0 1.00 1.00 98.00 98.00 0.00 0.00 0.00
11時52分43秒 eth0 1.00 1.00 98.00 98.00 0.00 0.00 0.00
11時52分45秒 eth0 1.00 1.00 98.00 98.00 0.00 0.00 0.00
Average: eth0 1.00 1.00 98.00 98.00 0.00 0.00 0.00

如果想知道網路裝置錯誤報告,也就就是用來檢視裝置故障的。應該用EDEV;比如下面的例子;


[root@localhost ~]# sar -n EDEV 2 5


3.3 iostat


iostat 是用來顯示 系統即時系統,比如CPU使用率,硬碟裝置的吞吐率;

[root@localhost ~]# iostatLinux 2.6.15-1.2054_FC5 (localhost.localdomain) 2006年05月12日avg-cpu: %user %nice %system %iowait %idle 7.24 0.00 0.99 0.35 91.43Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtnhda 1.46 28.43 21.43 710589 535680

3.4 mpstat


mpstat 提供多處理器系統中的CPU的利用率的統計;mpstat 也可以加引數,用-P來指定哪個 CPU,處理器的ID是從0開始的。下面的例子是檢視兩個處理器,每二秒資料更新一次,總共要顯示10次資料;


[root@localhost ~]# mpstat -P 0 2 10 注:檢視第一個CPU
[root@localhost ~]# mpstat -p 1 2 10 注:檢視第二個CPU


[root@localhost ~]# mpstat 2 10 注:檢視所有CPU;


3.5 sdaf


sdaf 能從二進位制檔案中提取sar所收集的資料;這個大家知道就行了。顯示的並不是友好的格式;


[root@localhost ~]# sar -u 2 5 -o sar003
[root@localhost ~]# sadf sar003

相對來說,用sar來讀取輸出檔案的內容更好;比如下面的;


[root@localhost ~]# sar -f sar003


4、 與Sysstat相似工具;

4.1 程式管理工具;


程式管理工具,包括ps 、pgrep、top、kill 、killall、pkill 等,請參考 《 Linux 程式管理》


4.2 記憶體使用率檢視工具;


記憶體使用量 free

free 工具既能檢視實體記憶體,也能檢視虛擬記憶體的用量;


[root@localhost ~]# free

如果顯示以單位M,則加-m引數;


[root@localhost ~]# free -m
total used free shared buffers cached
Mem: 724 713 11 0 24 290
-/+ buffers/cache: 398 326
Swap: 800 0 800


vmstat 即時顯示記憶體工具;


vmstat 是一個即時顯示記憶體使用情況的工具;

vmstat 使用方法:


vmstat [-V] [-n] [delay [count]]
-V 顯示vmstat的版本;
-n causes the headers not to be reprinted regularly.
-a 顯示所有啟用和未啟用記憶體的狀態;print inactive/active page stats.
-d 顯示硬碟統計資訊;prints disk statistics
-D 顯示硬碟分割槽表;prints disk table
-p 顯示硬碟分割槽讀寫狀態等;prints disk partition statistics
-s 顯示記憶體使用情況;prints vm table
-m prints slabinfo
-S 定義單位,k K
delay 是兩次重新整理時間間隔;
單位體積: k:1000 K:1024 m:1000000 M:1048576 (預設是 K)
count 重新整理次數;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-245319/,如需轉載,請註明出處,否則將追究法律責任。

相關文章