vmstat是一個查看虛擬內存(Virtual Memory)使用狀況的工具。
一般格式:
vmstat [-V] [-n] [delay [count]]
常用選項:
-V :打印版本信息。
-n :在周期性循環輸出時,輸出的頭部信息僅顯示一次。
delay :兩次輸出之間間隔多少時間,單位秒。
count :按照這個時間間隔統計的次數。
-a :顯示活躍和非活躍內存大小。
舉例:
# vmstat 2 3
每隔2秒打印一次,共打印3次。
# vmstat 10
每隔10秒打印一次,直到按Ctrl+C結束。
vmstat命令輸出分成六個部分
(1)procs進程:
r:在運行隊列中等待的進程數。這個值如果長期大於系統CPU個數,就說明CPU資源不足,可以考慮增加CPU。
b:在等待I/O的進程數。
(2)memoy內存:
swpd:使用虛擬內存大小(單位KB)。
free:空閒的內存數(單位KB)。
buff:用於緩沖區的內存數(單位:KB)。
cache:用於做為高速緩存的內存數(單位:KB)。
(3)swap交換頁面:
si: 從磁盤交換區寫到內存的頁數量,單位:KB/秒。
so: 從內存寫到磁盤交換區的頁數量,單位:KB/秒。
一般情況下,si、so的值都為0,如果si、so的值長期不為0,則表示系統內存不足,需要考慮是否增加系統內存。
(4)io塊設備:
bi: 從塊設備讀入的數據總量(即讀磁盤,單位KB/秒)。
bo: 寫入到塊設備的數據總量(即寫磁盤,單位KB/秒)。
(5)system系統:
in: 每秒的中斷數,包括時鐘中斷。
cs: 每秒的環境上下文切換次數。
上面這兩個值越大,會看到內核消耗的CPU時間就越多。
(6)cpu中央處理器:
us:用戶進程使用的時間,以百分比表示。
sy:系統內核進程使用的時間,以百分比表示。
id:空閒時間,以百分比表示。
wa:等待磁盤IO所占的時間,以百分比表示。wa值越高,說明IO等待越嚴重。
st:st一般不關注,虛擬機占用的時間百分比。
網上說主要看r、b、bi、bo、wa這幾列,查看是否CPU、磁盤I/O資源不足。