天天看點

vmstat性能參數的解讀

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處在空閑狀态時間百分比