1、命令簡(jiǎn)介
vmstat(Virtual Memory Statistics 虛擬內(nèi)存統(tǒng)計(jì)) 命令用來(lái)顯示Linux系統(tǒng)虛擬內(nèi)存狀態(tài),也可以報(bào)告關(guān)于進(jìn)程、內(nèi)存、I/O等系統(tǒng)整體運(yùn)行狀態(tài)。
2、用法
vmstat [-a] [-n] [-t] [-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]
3、選項(xiàng)
-a:顯示活躍和非活躍內(nèi)存
-f:顯示從系統(tǒng)啟動(dòng)至今的fork數(shù)量 。
-m:顯示slabinfo
-n:只在開(kāi)始時(shí)顯示一次各字段名稱。
-s:顯示內(nèi)存相關(guān)統(tǒng)計(jì)信息及多種系統(tǒng)活動(dòng)數(shù)量。
delay:刷新時(shí)間間隔。如果不指定,只顯示一條結(jié)果。
count:刷新次數(shù)。如果不指定刷新次數(shù),但指定了刷新時(shí)間間隔,這時(shí)刷新次數(shù)為無(wú)窮。
-d:顯示磁盤相關(guān)統(tǒng)計(jì)信息。
-p:顯示指定磁盤分區(qū)統(tǒng)計(jì)信息
-S:使用指定單位顯示。參數(shù)有 k 、K 、m 、M ,分別代表1000、1024、1000000、1048576字節(jié)(byte)。默認(rèn)單位為K(1024 bytes)
-V:顯示vmstat版本信息。
4、示例
示例1:vmstat 命令說(shuō)明

Procs(進(jìn)程)
r??????? 運(yùn)行隊(duì)列中進(jìn)程數(shù)量,這個(gè)值也可以判斷是否需要增加CPU。(長(zhǎng)期大于1)
b??????? 等待IO的進(jìn)程數(shù)量。
Memory(內(nèi)存)
swpd??? 使用虛擬內(nèi)存大小,如果swpd的值不為0,但是SI,SO的值長(zhǎng)期為0,這種情況不會(huì)影響系統(tǒng)性能。
free???? 空閑物理內(nèi)存大小。
buff???? 用作緩沖的內(nèi)存大小。
cache???? 用作緩存的內(nèi)存大小,如果cache的值大的時(shí)候,說(shuō)明cache處的文件數(shù)多,如果頻繁訪問(wèn)到的文件都能被cache處,那么磁盤的讀IO bi會(huì)非常小。
Swap
si???? 每秒從交換區(qū)寫到內(nèi)存的大小,由磁盤調(diào)入內(nèi)存。
so???? 每秒寫入交換區(qū)的內(nèi)存大小,由內(nèi)存調(diào)入磁盤。
注意:內(nèi)存夠用的時(shí)候,這2個(gè)值都是0,如果這2個(gè)值長(zhǎng)期大于0時(shí),系統(tǒng)性能會(huì)受到影響,磁盤IO和CPU資源都會(huì)被消耗。有些朋友看到空閑內(nèi)存(free)很少的或接近于0時(shí),就認(rèn)為內(nèi)存不夠用了,不能光看這一點(diǎn),還要結(jié)合si和so,如果free很少,但是si和so也很少(大多時(shí)候是0),那么不用擔(dān)心,系統(tǒng)性能這時(shí)不會(huì)受到影響的。因?yàn)閘inux總是先把內(nèi)存用光
IO
bi???? 每秒讀取的塊數(shù)
bo???? 每秒寫入的塊數(shù)
注意:隨機(jī)磁盤讀寫的時(shí)候,這2個(gè)值越大(如超出1024k),能看到CPU在IO等待的值也會(huì)越大。
system(系統(tǒng))
in???? 每秒中斷數(shù),包括時(shí)鐘中斷。
cs???? 每秒上下文切換數(shù)。
注意:上面2個(gè)值越大,會(huì)看到由內(nèi)核消耗的CPU時(shí)間會(huì)越大。
CPU(以百分比表示)
us???? 用戶進(jìn)程執(zhí)行時(shí)間百分比(user time) us的值比較高時(shí),說(shuō)明用戶進(jìn)程消耗的CPU時(shí)間多,但是如果長(zhǎng)期超50%的使用,那么我們就該考慮優(yōu)化程序算法或者進(jìn)行加速。
sy???? 內(nèi)核系統(tǒng)進(jìn)程執(zhí)行時(shí)間百分比(system time) sy的值高時(shí),說(shuō)明系統(tǒng)內(nèi)核消耗的CPU資源多,這并不是良性表現(xiàn),我們應(yīng)該檢查原因。
wa???? IO等待時(shí)間百分比 wa的值高時(shí),說(shuō)明IO等待比較嚴(yán)重,這可能由于磁盤大量作隨機(jī)訪問(wèn)造成,也有可能磁盤出現(xiàn)瓶頸(塊操作)。
id???? 空閑時(shí)間百分比
實(shí)例2:
vmstat -a 顯示活躍和非活躍內(nèi)存狀態(tài)
增加了inact和active

vmstat -d 查看磁盤的讀/寫

查看/dev/sda1磁盤的讀/寫
