sysstat介紹

一.sysstat工具

sysstat是一個工具包,包含有幾個很有用的系統檢測程序,iostat,mpstat和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
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 [ -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 [ -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設備的活動信息.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章