vmstat命令詳解

  vmstat是Virtual Meomory Statistics(虛擬內存統計)的縮寫,可對操作系統的虛擬內存、進程、CPU活動進行監視。它是對系統的整體情況進行統計,不足之處是無法對某個進程進行深入分析。

  vmstat的語法如下:
  vmstat [-V] [-n] [delay [count]]

  其中,-V表示打印出版本信息;-n表示在週期性循環輸出時,輸出的頭部信息僅顯示一次;delay是兩次輸出之間的延遲時間;count是指按照這個時間間隔統計的次數。對於vmstat輸出各字段的含義,可運行man vmstat查看。

  vmstat 命令報告關於內核線程、虛擬內存、磁盤、陷阱和 CPU 活動的統計信息。由 vmstat 命令生成的報告可以用於平衡系統負載活動。系統範圍內的這些統計信息(所有的處理器中)都計算出以百分比表示的平均值,或者計算其總和。

.Procs
-r: 運行的和等待(CPU時間片)運行的進程數,這個值也可以判斷是否需要增加CPU(長期大於1)
-b: 處於不可中斷狀態的進程數,常見的情況是由I/O引起的。
MEMORY
-swap:切換到交換內存上的內存(默認以KB爲單位)
  如果SWAP的值不爲0,或者還比較大,比如超過100M了,但是SI,SO的值長期爲0,這種情況我們可以不用擔心,不會影響系統性能。
-free:p空閒的物理內存
- 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處於空閒狀態時間百分比
  情景分析:
  vmstat的輸出哪些信息值得關注?
--proc r:運行的進程比較多,系統很繁忙
--IO bo:磁盤寫的數據量稍大,如果大文件的寫,10以內基本不用擔心,如果是小文件2M以前基本正常,
--CPU us:持續大於50,服務高峯期可以接受
--CPU wa:稍微有些同
--CPU id:持續小於50,服務高峯期可以接受
  如果在多用戶環境中us+sys》80,進程就會在運行隊列中花費等待時間,響應時間和吞吐量就會下降。wa>40表明磁盤io沒有也許存在不合理的平衡,或者對磁盤操作比較頻繁
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章