1. 程式人生 > 其它 >Linux監控命令之sar

Linux監控命令之sar

一、使用說明

sar 是目前 Linux 上最為全面的系統性能分析工具之一,可以從多方面對系統的活動進行報告,包括:檔案的讀寫情況、系統呼叫的使用情況、磁碟I/O、CPU效率、記憶體使用狀況、程序活動及IPC有關的活動等。

二、引數說明

  • -A:所有報告的總和
  • -u:顯示CPU使用情況的統計資訊
  • -v:顯示inode、檔案和其他核心表的統計資訊
  • -p:顯示當前系統中指定CPU使用資訊
  • -d:顯示硬碟使用資訊
  • -r:顯示記憶體和交換區間的統計資訊
  • -n:顯示網路執行狀態。引數後面可以跟DEV、EDEV、SOCK和FULL。DEV顯示網路介面資訊,EDEV顯示網路錯誤的統計資料,SOCK顯示套接字資訊,FULL顯示前三引數所有資訊
  • -q:顯示執行佇列的大小,它與系統當時的平均負載相同
  • -B:顯示記憶體分頁情況
  • -R:顯示程序在取樣時間內的活動情況
  • -g:顯示串列埠I/O的情況
  • -b:顯示緩衝區使用情況
  • -a:檔案讀寫情況
  • -c:顯示程序統計資訊,每秒建立的程序數
  • -R:顯示程序的活動情況
  • -y:顯示終端裝置活動情況
  • -w:顯示系統交換活動資訊

三、用法介紹

1、CPU資源監控

每隔2秒往螢幕輸出一次CPU使用資訊,共輸出3次,也可以把-u省略不輸,如下圖:

  • CPU:all 表示統計資訊為所有 CPU 的平均值。
  • %user:使用者程序消耗的CPU 時間百分比。
  • %nice:執行正常程序消耗的CPU 時間百分比。
  • %system:系統程序消耗的CPU 時間百分比。
  • %iowait:I/O 等待所佔CPU 時間百分比。
  • %steal:在記憶體緊張環境下,pagein 強制對不同的頁面進行的steal 操作
  • %idle:CPU 空閒狀態的時間百分比。
  • 在所有的顯示中,我們應主要注意%iowait 和%idle,%iowait 的值過高,表示硬碟存在I/O 瓶頸, %idle 值高,表示CPU 較空閒,如果%idle 值高但系統響應慢時,有可能是CPU 等待分配記憶體, 此時應加大記憶體容量。%idle 值如果持續低於10,那麼系統的CPU 處理能力相對較低,表明系統中最需要解決的資源是CPU。

2、inode、檔案和其他核心表監控

2秒取樣一次,連續取樣3次,觀察核心表的狀態

  • dentunusd:目錄快取記憶體中未被使用的條目數量
  • file-nr:檔案控制代碼(file handle)的使用數量
  • inode-nr:索引節點控制代碼(inode handle)的使用數量
  • pty-nr:使用的pty數量

3、記憶體和交換空間監控

2秒取樣一次,連續取樣3次,監控記憶體分頁。也可以不指定次數,一直監控下去,如下圖:

  • kbmemfree:這個值和free命令中的free值基本一致,所以它不包括buffer和cache的空間
  • kbmemused:這個值和free命令中的used值基本一致,所以它包括buffer和cache的空間
  • %memused:這個值是kbmemused和記憶體總量(不包括swap)的一個百分比
  • kbbuffers和kbcached:這兩個值就是free命令中的buffer和cache
  • kbcommit:保證當前系統所需要的記憶體,即為了確保不溢位而需要的記憶體(RAM+swap)
  • %commit:這個值是kbcommit與記憶體總量(包括swap)的一個百分比

4、記憶體分頁監控

  • pgpgin/s:表示每秒從磁碟或SWAP置換到記憶體的位元組數(KB)
  • pgpgout/s:表示每秒從記憶體置換到磁碟或SWAP的位元組數(KB)
  • fault/s:每秒系統產生的缺頁數,即主缺頁與次缺頁之和(major + minor)
  • majflt/s:每秒產生的主缺頁數
  • pgfree/s:每秒被放入空閒佇列中的頁個數
  • pgscank/s:每秒被kswapd掃描的頁個數
  • pgscand/s:每秒直接被掃描的頁個數
  • pgsteal/s:每秒鐘從cache中被清除來滿足記憶體需要的頁個數
  • %vmeff:每秒清除的頁(pgsteal)佔總掃描頁(pgscank+pgscand)的百分比

5、I/O和傳送速率監控

  • tps:每秒鐘物理裝置的 I/O 傳輸總量
  • rtps:每秒鐘從物理裝置讀入的資料總量
  • wtps:每秒鐘向物理裝置寫入的資料總量
  • bread/s:每秒鐘從物理裝置讀入的資料量,單位為 塊/s
  • bwrtn/s:每秒鐘向物理裝置寫入的資料量,單位為 塊/s

6、程序佇列長度和平均負載狀態監控

  • runq-sz:執行佇列的長度(等待執行的程序數)
  • plist-sz:程序列表中程序(processes)和執行緒(threads)的數量
  • ldavg-1:最後1分鐘的系統平均負載(System load average)
  • ldavg-5:過去5分鐘的系統平均負載
  • ldavg-15:過去15分鐘的系統平均負載

7、系統交換活動資訊監控

  • pswpin/s:每秒系統換入的交換頁面(swap page)數量
  • pswpout/s:每秒系統換出的交換頁面(swap page)數量

8、裝置使用情況監控

  • tps:每秒從物理磁碟I/O的次數.多個邏輯請求會被合併為一個I/O磁碟請求,一次傳輸的大小是不確定的
  • rd_sec/s:每秒讀扇區的次數
  • wr_sec/s:每秒寫扇區的次數
  • avgrq-sz:平均每次裝置I/O操作的資料大小(扇區)
  • avgqu-sz:磁碟請求佇列的平均長度
  • await:從請求磁碟操作到系統完成處理,每次請求的平均消耗時間,包括請求佇列等待時間,單位是毫秒(1秒=1000毫秒)
  • svctm:系統處理每次請求的平均時間,不包括在請求佇列中消耗的時間
  • %util:I/O請求佔CPU的百分比,比率越大,說明越飽和
  • 1.avgqu-sz 的值較低時,裝置的利用率較高
  • 2.當%util的值接近1% 時,表示裝置頻寬已經佔滿

四、效能分析幫助

要判斷系統瓶頸問題,有時需要幾個sar命令選項結合起來:

  1、懷疑CPU存在瓶頸,可使用sar –u和sar –q來檢視
  2、懷疑記憶體存在瓶頸,可使用sar –B、sar –r和sar –W來檢視
  3、懷疑I/O存在瓶頸,可使用sar –b、sar –u和sar –d來檢視