linux 監測命令(vmstat)

muxinqing發表於2015-06-15

linux 監測命令(vmstat)

命令格式:

vmstat [-a] [-n] [-S unit] [delay [ count]]

vmstat [-s] [-n] [-S unit]

vmstat [-m] [-n] [delay [ count]]

vmstat [-d] [-n] [delay [ count]]

vmstat [-p disk partition] [-n] [delay [ count]]

vmstat [-f]

vmstat [-V]

命令功能:

用來顯示虛擬記憶體的資訊

命令引數:

-a:顯示活躍和非活躍記憶體

-f:顯示從系統啟動至今的fork數量 。

-m:顯示slabinfo

-n:只在開始時顯示一次各欄位名稱。

-s:顯示記憶體相關統計資訊及多種系統活動數量。

delay:重新整理時間間隔。如果不指定,只顯示一條結果。

count:重新整理次數。如果不指定重新整理次數,但指定了重新整理時間間隔,這時重新整理次數為無窮。

-d:顯示磁碟相關統計資訊。

-p:顯示指定磁碟分割槽統計資訊

-S:使用指定單位顯示。引數有 k 、K 、m 、M ,分別代表1000、1024、1000000、1048576位元組(byte)。預設單位為K(1024 bytes)

-V:顯示vmstat版本資訊。


[root@smsplatform01 ~]# vmstat 2 8
procs           -----------memory---------- -     --swap--  -----io---- --system--     -----cpu-----
 r  b    swpd   free        buff     cache      si    so    bi    bo   in     cs    us  sy id   wa st
 0  0      0 21928380 471140 9757520    0    0     0     6    9      12   0  0 100  0  0
 0  0      0 21928388 471140 9757524    0    0     2    60 1091 2099  0  0 100  0  0
 0  0      0 21928372 471140 9757524    0    0     0    58 1067 2085  0  0 100  0  0
 0  0      0 21928240 471140 9757524    0    0     0    60 1083 2104  0  0 100  0  0
 0  0      0 21928224 471144 9757524    0    0     0    64 1079 2100  0  0 100  0  0
 1  0      0 21928224 471144 9757528    0    0     2    52 1081 2092  0  0 100  0  0
 0  0      0 21921000 471144 9757528    0    0     6    80 1188 2162  0  0 99    0  0
 1  0      0 21920628 471144 9757548    0    0     0    74 1094 2110  0  0 100  0  0

Linux 記憶體監控vmstat命令輸出分成六個部分:


(1)程式procs:
r:在執行佇列中等待的程式數 。當這個值超過了CPU數目,就會出現CPU瓶頸了。這個也和top的負載有關係,一般負載超過了3就比較高,超過了5就高,超過了10就不正常了,
伺服器的狀態很危險。top的負載類似每秒的執行佇列。如果執行佇列過大,表示你的CPU很繁忙,一般會造成CPU使用率很高。
b:在等待io的程式數 。 當這個一值很高說明I/O等待嚴重。


(2)Linux 記憶體監控記憶體memoy:
swpd:現時可用的交換記憶體(單位KB)。
free:空閒的記憶體(單位KB)。
buff: 緩衝去中的記憶體數(單位:KB)。
cache:被用來做為快取記憶體的記憶體數(單位:KB)。


(3) Linux 記憶體監控swap交換頁面
si: 從磁碟交換到記憶體的交換頁數量,單位:KB/秒。
so: 從記憶體交換到磁碟的交換頁數量,單位:KB/秒。


(4)Linux 記憶體監控 io塊裝置:
bi: 傳送到塊裝置的塊數,單位:塊/秒。
bo: 從塊裝置接收到的塊數,單位:塊/秒。


(5)Linux 記憶體監控system系統:
in: 每秒的中斷數,包括時鐘中斷。
cs: 每秒的環境(上下文)轉換次數。


(6)Linux 記憶體監控cpu中央處理器:
cs:使用者程式使用的時間 。以百分比表示。  如果在使用大於40%,那麼我們就該考慮最佳化程
sy:系統程式使用的時間。 以百分比表示。  如果在使用超過40%,那麼我們就該考慮作業系統BUG或者被公交等等.....
id:中央處理器的空閒時間 如果長期超過50% 如果在使用超過40%,那麼我們就該考慮最佳化程式演算法或者新增CPU

wa:IO等待消耗的CPU時間百分比 wa 的值高時,說明IO等待比較嚴重,這可能是由於磁碟大量作隨機訪問造成,也有可能是磁碟的頻寬出現瓶頸(塊操作)。

假如 r經常大於 4 ,且id經常小於40,表示中央處理器的負荷很重。 假如bi,bo 長期不等於0,表示實體記憶體容量太小

總結:用這個命令收集資訊,可以幫助我們分析出來伺服器是I/O問題,還是CPU問題,很管用命令。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29065182/viewspace-1699871/,如需轉載,請註明出處,否則將追究法律責任。

相關文章