vmstat詳解

vmstat 全面的性能分析工具,可以觀察到系統的進程狀態、內存使用、虛擬內存使用、磁盤的IO、中斷、上下文切換、CPU使用等。

  在系統中使用root身份,執行vmstat 1 命令,觀察性能狀況。各參數值含義見下方:

  vmstat

  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% 的使用,那麼我們就該考慮優化程序算法或者進行加速了

  sy: 內核進程消耗的CPU時間百分比

  sy 的值高時,說明系統內核消耗的CPU資源多,這並不是良性的表現,我們應該檢查原因。

  wa: IO等待消耗的CPU時間百分比

  wa 的值高時,說明IO等待比較嚴重,這可能是由於磁盤大量作隨機訪問造成,也有可能是磁盤的帶寬出現瓶頸(塊操作)。

  id: CPU處在空閒狀態時間百分比



  這個 vmstat 的輸出那些信息值得關注?

  procs r: 運行的進程比較多,系統很繁忙

  io bo: 磁盤寫的數據量稍大,如果是大文件的寫,10M以內基本不用擔心,如果是小文件寫2M以內基本正常

  cpu us: 持續大於50,服務高峯期可以接受

  cpu wa: 稍微有些高

  cpu id:持續小於50,服務高峯期可以接受
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章