一.sysstat工具
sysstat是一個工具包,包含有幾個很有用的系統檢測程序,iostat,mpstat和sar.
Turbolinux的各個版本上,都包含這個工具包.
iostat用於輸出CPU,I/O系統和磁盤分區的統計信息.可以用來分析磁盤I/O,帶寬等信息.
mpstat用於輸出CPU的各種統計信息. 可以用來分析程序運行時在內核態和用戶態的工作情況.
sar用於定時蒐集系統的各種狀態信息.然後可以對系統各個時間點的狀態進行監控.
Turbolinux的各個版本上,都包含這個工具包.
iostat用於輸出CPU,I/O系統和磁盤分區的統計信息.可以用來分析磁盤I/O,帶寬等信息.
mpstat用於輸出CPU的各種統計信息. 可以用來分析程序運行時在內核態和用戶態的工作情況.
sar用於定時蒐集系統的各種狀態信息.然後可以對系統各個時間點的狀態進行監控.
二.使用sysstat
1.iostat
iostat用於輸出CPU和磁盤I/O相關的統計信息.
命令格式:
命令格式:
iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [ ... ] | ALL ] [ -p [ device | ALL ] ] [ interval [ count ] ]
1)iostat的簡單使用
iostat可以顯示CPU和I/O系統的負載情況及分區狀態信息.
直接執行iostat可以顯示下面內容:
直接執行iostat可以顯示下面內容:
# iostat Linux 2.6.9-8.11.EVAL (ts3-150.ts.cn.tlan) 08/08/2007 avg-cpu: %user %nice %sys %iowait %idle 12.01 0.00 2.15 2.30 83.54 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn hda 7.13 200.12 34.73 640119 111076
各個輸出項目的含義如下:
avg-cpu段: %user: 在用戶級別運行所使用的CPU的百分比. %nice: nice操作所使用的CPU的百分比. %sys: 在系統級別(kernel)運行所使用CPU的百分比. %iowait: CPU等待硬件I/O時,所佔用CPU百分比. %idle: CPU空閒時間的百分比. Device段: tps: 每秒鐘發送到的I/O請求數. Blk_read /s: 每秒讀取的block數. Blk_wrtn/s: 每秒寫入的block數. Blk_read: 讀入的block總數. Blk_wrtn: 寫入的block總數.
2)iostat參數說明
iostat各個參數說明:
-c 僅顯示CPU統計信息.與-d選項互斥. -d 僅顯示磁盤統計信息.與-c選項互斥. -k 以K爲單位顯示每秒的磁盤請求數,默認單位塊. -p device | ALL 與-x選項互斥,用於顯示塊設備及系統分區的統計信息.也可以在-p後指定一個設備名,如: # iostat -p hda 或顯示所有設備 # iostat -p ALL -t 在輸出數據時,打印蒐集數據的時間. -V 打印版本號和幫助信息. -x 輸出擴展信息.
3)iostat輸出項目說明
Blk_read 讀入塊的當總數. Blk_wrtn 寫入塊的總數. kB_read/s 每秒從驅動器讀入的數據量,單位爲K. kB_wrtn/s 每秒向驅動器寫入的數據量,單位爲K. kB_read 讀入的數據總量,單位爲K. kB_wrtn 寫入的數據總量,單位爲K. rrqm/s 將讀入請求合併後,每秒發送到設備的讀入請求數. wrqm/s 將寫入請求合併後,每秒發送到設備的寫入請求數. r/s 每秒發送到設備的讀入請求數. w/s 每秒發送到設備的寫入請求數. rsec/s 每秒從設備讀入的扇區數. wsec/s 每秒向設備寫入的扇區數. rkB/s 每秒從設備讀入的數據量,單位爲K. wkB/s 每秒向設備寫入的數據量,單位爲K. avgrq-sz 發送到設備的請求的平均大小,單位是扇區. avgqu-sz 發送到設備的請求的平均隊列長度. await I/O請求平均執行時間.包括髮送請求和執行的時間.單位是毫秒. svctm 發送到設備的I/O請求的平均執行時間.單位是毫秒. %util 在I/O請求發送到設備期間,佔用CPU時間的百分比.用於顯示設備的帶寬利用率. 當這個值接近100%時,表示設備帶寬已經佔滿.
4)iostat示例
# iostat 顯示一條統計記錄,包括所有的CPU和設備. # iostat -d 2 每隔2秒,顯示一次設備統計信息. # iostat -d 2 6 每隔2秒,顯示一次設備統計信息.總共輸出6次. # iostat -x hda hdb 2 6 每隔2秒顯示一次hda,hdb兩個設備的擴展統計信息,共輸出6次. # iostat -p sda 2 6 每隔2秒顯示一次sda及上面所有分區的統計信息,共輸出6次.
2.mpstat
1)mpstat簡介
mpstat用於輸出與CPU相關的統計信息.
mpstat命令格式:
mpstat命令格式:
mpstat [ -P { cpu | ALL } ] [ -V ] [ interval [ count ] ]
mpstat用於輸出每一個CPU的運行狀況,並會輸出一個彙總的信息.
2)mpstat參數說明
interval 參數用來指定每次統計信息之間的間隔時間,單位是秒.指定0則輸出自系統 啓動後的一個統計信息. count 參數用來指定產生統計信息的總數.如果不指定,mpstat將不斷產生統計信息. -P cpu | ALL 表示CPU-ID,第一個CPU爲0.ALL表示輸出所有CPU的統計信息. -V 輸出版本號和幫助信息.
3)mpstat各個輸出項目的含義如下
CPU CPU-ID,在多CPU系統裏,每個CPU有一個ID號,第一個CPU爲0. all表示,統計信息爲所有CPU的平均值. %user 顯示在用戶級別運行所佔用CPU總時間的百分比. %nice 顯示在用戶級別,用於nice操作,所佔用CPU總時間的百分比. %system 顯示在kernel級別運行所佔用CPU總時間的百分比. 注意:這個值並不包括服務中斷和softirq. %iowait 顯示用於等待I/O操作時,佔用CPU總時間的百分比. %irq 顯示用於中斷操作,佔用CPU總時間的百分比. %soft 顯示用於softirq操作,佔用CPU總時間的百分比. %idle 顯示CPU在空閒狀態,佔用CPU總時間的百分比. intr/s 顯示CPU每秒接收到的中斷總數.
4)mpstat示例
# mpstat 2 5 每隔2秒輸出一個統計信息,共輸出5次. mpstat -P ALL 2 5 每隔2秒輸出一次所有CPU的統計信息,共輸出5次.
3.sar
1)sar的簡介
sar可以用來定時蒐集系統信息,並輸出各個時間點的統計信息.包括:CPU,磁盤I/O等信息.可以幫助
分析的系統負載狀況.
sar默認將蒐集的數據保存在/var/log/sysstat/saXX文件中,XX是當前日期的日.sa12表示保存的是12日的統計信息.
命令格式:
分析的系統負載狀況.
sar默認將蒐集的數據保存在/var/log/sysstat/saXX文件中,XX是當前日期的日.sa12表示保存的是12日的統計信息.
命令格式:
sar [ -A ] [ -b ] [ -B ] [ -c ] [ -d ] [ -H ] [ -h ] [ -i interval ] [ -q ] [ -r ] [ -R ] [ -t ] [ -u ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ] [ -n { DEV | EDEV | SOCK | FULL } ] [ -x { pid | SELF | ALL } ] [ -X { pid | SELF | ALL } ] [ -I { irq | SUM | ALL | XALL } ] [ -P { cpu | ALL } ] [ -o [ filename ] | -f [ filename ] ] [ -s [ hh:mm:ss ] ] [ -e [ hh:mm:ss ] ] [ interval [ count ] ]
2)sar簡單示例
sar -u 2 5 每隔2秒輸出1次CPU統計信息,共輸出5次. sar -I 14 2 10 -o 每隔2秒輸出1次關於中斷14的統計信息,共輸出10次.並把數據信息記錄到默認的 /var/log/saXX文件中. sar -r -n DEV -f /var/log/sa/sa16 顯示文件sa16中包含的內存,swap空間和網絡的統計信息. sar -A 顯示今天的所有統計信息.
2)sar參數說明
-A 相當於指定了-bBcdqrRuvwWy -I SUM -n FULL -P ALL. -b 顯示I/O和傳送速率的統計信息. tps 每秒到物理磁盤的傳送量.1個傳送就是1個I/O請求.多個邏輯請求可以被 合併成1個I/O請求.1個傳送的大小是不確定的. rtps 每秒到物理磁盤的讀入請求數. wtps 每秒到物理磁盤的寫入請求數. bread/s 每秒從設備讀取的塊總數. bwrtn/s 每秒寫入到設備的塊總數. -B 輸出頁統計信息. -c 輸出進程統計信息. proc/s 每秒建立的進程總數. -d 輸出每一個塊設備的活動信息. tps 顯示每秒到設備的傳送數. rd_sec/s 每秒從磁盤讀入的扇區數. wr_sec/s 每秒向磁盤寫入的扇區數. -e hh:mm:ss 設置輸出統計數據的截至時間,默認是18:00:00. -f filename 從文件讀取數據信息.數據信息文件是使用-o選項時生成的文件. -i interval 指定間隔時長,單位爲秒. -I irq | SUM | ALL | XALL 輸出指定中斷的統計信息.irq是中斷號.SUM指定顯示每秒接收到的 中斷總數.ALL指定顯示前16箇中斷.XALL指定輸出全部的中斷信息. 如: # sar -I 14 1 10 # sar -I SUM 1 5 # sar -I ALL 1 2 -n DEV | EDEV | SOCK | FULL 輸出網絡統計信息. -o filename 將信息保存到文件.如: # sar 1 4 -o /var/log/sysstat/sa20 -P cpu | ALL 表示CPU-ID,第一個CPU爲0.ALL表示輸出所有CPU的統計信息. -q 輸出隊列長度和負載狀況. -r 輸出內存和swap空間的統計信息. -R 輸出內存統計信息. -s hh:mm:ss 設置數據統計的起始時間. -u 輸出CPU使用情況的統計信息. -v 輸出inode,文件和其他核心表的信息. -V 輸出版本號和幫助. -w 輸出系統切換信息. cswch/s 每秒上下文切換的總數. -W 輸出swap統計信息. -x pid | SELF | ALL 輸出指定進程的統計信息. -X pid | SELF | ALL 輸出指定進程的子進程的統計信息. -y 輸出TTY設備的活動信息.