procs -----------memory---------- ---swap-- -----io---- -system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 240780 847772 122888 573556 0 0 2 56 9 3 1 2 96 1 0
================================================================================
##>Procs
r: 運作的和等待(CPU時間片)運作的程序數,這個值也可以判斷是否需要增加CPU(長期大于1)
b: 處于不可中斷狀态的程序數,常見的情況是由IO引起的
##>Memory
swpd: 切換到交換記憶體上的記憶體(預設以KB為機關)
如果 swpd 的值不為0,或者還比較大,比如超過100M了,但是si, so 的值長期為0,這種情況我們可以不用擔心,不會影響系統性能。
free: 空閑的實體記憶體
buff: 作為buffer cache的記憶體,對塊裝置的讀寫進行緩沖
cache: 作為page cache的記憶體, 檔案系統的cache
如果 cache 的值大的時候,說明cache住的檔案數多,如果頻繁通路到的檔案都能被cache住,那麼磁盤的讀IO bi 會非常小。
##>Swap
si: 交換記憶體使用,由磁盤調入記憶體
so: 交換記憶體使用,由記憶體調入磁盤
記憶體夠用的時候,這2個值都是0,如果這2個值長期大于0時,系統性能會受到影響。
磁盤IO和CPU資源都會被消耗。我發現有些朋友看到空閑記憶體(free)很少或接近于0時,就認為記憶體不夠用了,實際上不能光看這一點的,還要結合si,so,如果free很少,但是si,so也很少(大多時候是0),那麼不用擔心,系統性能這時不會受到影響的。
##>Io
bi: 從塊裝置讀入的資料總量(讀磁盤) (KB/s)
bo: 寫入到塊裝置的資料總理(寫磁盤) (KB/s)
随機磁盤讀寫的時候,這2個 值越大(如超出1M),能看到CPU在IO等待的值也會越大
##>System
in: 每秒産生的中斷次數
cs: 每秒産生的上下文切換次數
上面這2個值越大,會看到由核心消耗的CPU時間會越多
##>Cpu
us: 使用者程序消耗的CPU時間百分比
us 的值比較高時,說明使用者程序消耗的CPU時間多,但是如果長期超過50% 的使用,那麼我們就該考慮優化程式算法或者進行加速了(比如 PHP/Perl)
sy: 核心程序消耗的CPU時間百分比
sy 的值高時,說明系統核心消耗的CPU資源多,這并不是良性的表現,我們應該檢查原因。
wa: IO等待消耗的CPU時間百分比
wa 的值高時,說明IO等待比較嚴重,這可能是由于磁盤大量作随機通路造成,也有可能是磁盤的帶寬出現瓶頸(塊操作)。
id: CPU處在空閑狀态時間百分比