Linux監控命令之sar
阿新 • • 發佈:2022-12-10
一、使用說明
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來檢視