Linux命令 vmstat - 顯示虛擬內(nèi)存狀態(tài)

2022-03-24 09:49 更新

vmstat

顯示虛擬內(nèi)存狀態(tài)

補(bǔ)充說(shuō)明

vmstat命令 的含義為顯示虛擬內(nèi)存狀態(tài)(“Viryual Memor Statics”),但是它可以報(bào)告關(guān)于進(jìn)程、內(nèi)存、I/O等系統(tǒng)整體運(yùn)行狀態(tài)。

語(yǔ)法

vmstat(選項(xiàng))(參數(shù))

選項(xiàng)

-a:顯示活動(dòng)內(nèi)頁(yè);
-f:顯示啟動(dòng)后創(chuàng)建的進(jìn)程總數(shù);
-m:顯示slab信息;
-n:頭信息僅顯示一次;
-s:以表格方式顯示事件計(jì)數(shù)器和內(nèi)存狀態(tài);
-d:報(bào)告磁盤(pán)狀態(tài);
-p:顯示指定的硬盤(pán)分區(qū)狀態(tài);
-S:輸出信息的單位。

參數(shù)

  • 事件間隔:狀態(tài)信息刷新的時(shí)間間隔;
  • 次數(shù):顯示報(bào)告的次數(shù)。

實(shí)例

vmstat 3
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    320  42188 167332 1534368    0    0     4     7    1    0  0  0 99  0  0
 0  0    320  42188 167332 1534392    0    0     0     0 1002   39  0  0 100  0  0
 0  0    320  42188 167336 1534392    0    0     0    19 1002   44  0  0 100  0  0
 0  0    320  42188 167336 1534392    0    0     0     0 1002   41  0  0 100  0  0
 0  0    320  42188 167336 1534392    0    0     0     0 1002   41  0  0 100  0  0

字段說(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ù)多,如果頻繁訪(fǎng)問(wèn)到的文件都能被cache處,那么磁盤(pán)的讀IO bi會(huì)非常小。

Swap

  • si: 每秒從交換區(qū)寫(xiě)到內(nèi)存的大小,由磁盤(pán)調(diào)入內(nèi)存。
  • so: 每秒寫(xiě)入交換區(qū)的內(nèi)存大小,由內(nèi)存調(diào)入磁盤(pán)。

注意:內(nèi)存夠用的時(shí)候,這2個(gè)值都是0,如果這2個(gè)值長(zhǎng)期大于0時(shí),系統(tǒng)性能會(huì)受到影響,磁盤(pán)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ì)受到影響的。

IO(現(xiàn)在的Linux版本塊的大小為1kb)

  • bi: 每秒讀取的塊數(shù)
  • bo: 每秒寫(xiě)入的塊數(shù)

注意:隨機(jī)磁盤(pán)讀寫(xiě)的時(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: 用戶(hù)進(jìn)程執(zhí)行時(shí)間百分比(user time)

us的值比較高時(shí),說(shuō)明用戶(hù)進(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)重,這可能由于磁盤(pán)大量作隨機(jī)訪(fǎng)問(wèn)造成,也有可能磁盤(pán)出現(xiàn)瓶頸(塊操作)。

  • id: 空閑時(shí)間百分比


以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)