vmstat詳解html
vmstat (virtual memory statistics)是一款類unix服務器性能的監控工具,他主要用來監控進程、內存、swap虛擬內存、塊設備的輸入輸出,cpu的使用率等。vmstat應用於類unix系統。linux
首先咱們先在linux終端輸入這個命令,瞧瞧它的輸出風格。緩存
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 39908 313816 0 501136 4 6 21 10 38 55 0 0 99 1 0
再加上兩個參數看看vmstat的輸出。bash
[root@localhost ~]# vmstat 2 3 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 39908 313884 0 501140 4 6 21 10 38 55 0 0 99 1 0 0 0 39908 313924 0 501140 0 0 0 0 45 78 0 0 100 0 0 0 0 39908 313924 0 501140 0 0 0 0 41 76 0 0 100 0 0
這表示每隔兩秒總共刷新三次。服務器
接下來再逐個分析每個字段表明的意思。app
你能夠很清晰地看到vmstat總共監控6大塊,分別爲:進程(proc)、內存(memory)、虛擬內存(swap)、磁盤IO、系統相關(system)、cpu使用率。ide
r 即running,表示運行隊列(就是說多少個進程真的分配到CPU)。工具
b 即block,表示阻塞隊列。其實國外解釋是:The number of processes in uninterruptible sleep.連續性睡眠的進程,你能夠理解爲阻塞隊列。性能
swapd,表示虛擬內存的總共使用量。指定一個間隔時間,例如每隔3秒監測swapd的變化,若是swapd一直在增加,則表示虛擬內存正在被使用,這個信息告訴咱們當前系統的物理內存不足,這個時候,咱們就要分析內存不足的緣由,我一般是用top命令,再接着按M鍵,這樣就會按內存使用率的大小將進程排序,由此分析佔用內存較高的進程。spa
free,空閒物理內存的大小。
buff,內存中使用緩衝的總量。
cache,內存中使用緩存的總量。
si,即swamp in disk,每秒從磁盤讀入虛擬內存的大小總量。Amount of memory swapped in from disk (per second).這個值大於0表示虛擬內存被使用,要注意內存泄露的問題。
so,swamp output to disk,即每秒從虛擬內存寫入磁盤的大小總量。Amount of memory swapped to disk (per second).這個值大於0表示虛擬內存被使用,要注意內存泄露的問題。
bi,Blocks received from a block device (blocks per second),即每秒從塊設備接收到的塊設備量,即讀塊設備的量。
bo,Blocks sent to a block device (blocks/s),即每秒從塊設備寫入的塊設備量,即寫塊設備的量。
in,即interrupts,cpu每秒中斷的次數,包括時間中斷。
cs,即content switch,上下文切換。上下文切換頻繁會形成CPU沒必要要的浪費。
us,即user time,用戶CPU時間。
sy,即system time,即系統CPU時間。
id,即idle time,即CPU閒置時間。
wa,即wait time,等待IO時間,這個值太高,表示磁盤IO繁忙。
st,即stolen。偷取時間,與虛擬機相關。
參考連接:
[1]http://www.cnblogs.com/ggjucheng/archive/2012/01/05/2312625.html