1. 程式人生 > >vmstat輸出項解釋

vmstat輸出項解釋

-c trac 內核進程 占用 -s 緩沖 blog phoenix mark

輸出項的解釋例如以下:
procs
* r列表示執行和等待cpu時間片段的進程數,這個值假設長期大約系統cpu個數。說明cpu不足
* b列表示在等待資源的進程數。比方正在等待IO或者內存交換等等

memory
* swap列表示切換到交換區的內存大小(KB為單位),假設swap的值不為0或者比較大,僅僅要si和so長期為0。一般不是性能問題
* free列表示當前空暇的物理內存數量(以KB為單位)
* buff列表示buffers cache的內存數量,一般對塊設備的讀寫才須要緩沖
* cache列表示page cached的內存數量,一般作為文件系統進行緩存。頻繁訪問的文件都會被緩存。

假設cache值較大,說明緩存文件較多,假設此時io中的bi比較小。說明文件系統效率比較好。

swap
* si列表示由磁盤調入內存,也就是由內存進入內存交換區的內存大小,單位KB/秒
* so列表示由內存調入磁盤,也就是由內存交換區進入內存的大小,單位KB/秒。
在普通情況下,si、so的值都為0。假設si、so值長期不為0。則表示系統內存不足。須要添加系統內存。


io
io項顯示磁盤讀寫情況
bi列表示從塊設備讀入數據的總量(即讀磁盤)(kb/s)
bo列表示寫到塊設備的數據總量(即寫磁盤)(kb/s)
bi+bo的參考值為1000。假設超過1000。並且wa值較大,則表示系統磁盤IO有問題。應該考慮提高磁盤的讀寫性能。
system
顯示採集間隔內發生的中斷數
in列表示在某一時間間隔內觀測到的每秒設備中斷數
cs列表示每秒產生的上下文切換次數
上面的兩個值越大,由內核消耗的CPU時間越多。


CPU
顯示了CPU的使用狀態,此列是關註的重點。
us列顯示了用戶進程消耗的CPU時間百分比。

us的值比較高時,說明用戶進程消耗的CPU時間多,可是假設長期大約50%。就須要考慮優化算法或程序。


sy列顯示了內核進程消耗的CPU時間百分比。sy的值較高時,說明內核消耗的CPU資源非常多。
依據經驗,us+sy的參考值為80%,假設us+sy大約80%。說明可能存在CPU資源不足。
id列顯示了CPU處在空暇時間的時間百分比。
wa列顯示了IO等待所占用的CPU時間百分比。wa值越高,說明IO等待越嚴重。依據經驗,wa的參考值為20%,假設wa超過20%,說明IO等待嚴重,引起IO等待的原因可能是磁盤大量隨機讀寫造成的,也可能是磁盤或者磁盤控制器的帶寬瓶頸(主要是塊操作)造成的。

綜上所述,在對CPU的評估中,須要重點註意procs項中r列的值和CPU項中us、sy和id列的值。

vmstat輸出項解釋