Linux系統(tǒng)命令介紹之vmstat命令詳解
今天小編要跟大家介紹的Linux命令是關(guān)于vmstat命令詳解。熟悉Linux系統(tǒng)和使用Linux系統(tǒng)工作的小伙伴都知道Linux的命令有很多,而真正在工作中用到的命令應(yīng)該不超過幾十個(gè),為了讓大家更好的掌握這些命令,小編為大家分享了這篇Linux vmstat命令詳解的文章,希望能夠?qū)Υ蠹矣兴鶐椭?Linux入門新手和正在Linux學(xué)習(xí)的小伙伴快來看一看吧,希望能夠?qū)Υ蠹矣兴鶐椭?/p>
vmstat是Virtual Meomory Statistics(虛擬內(nèi)存統(tǒng)計(jì))的縮寫,可對操作系統(tǒng)的虛擬內(nèi)存、進(jìn)程、CPU活動(dòng)進(jìn)行監(jiān)控。它是對系統(tǒng)的整體情況進(jìn)行統(tǒng)計(jì),不足之處是無法對某個(gè)進(jìn)程進(jìn)行深入分析。vmstat工具提供了一種低開銷的系統(tǒng)性能觀察方式。因?yàn)関mstat本身就是低開銷工具,在非常高負(fù)荷的服務(wù)器上,你需要查看并監(jiān)控系統(tǒng)的健康情況,在控制窗口還是能夠使用vmstat輸出結(jié)果。
一、虛擬內(nèi)存原理
上面說到了vmstat是虛擬內(nèi)存統(tǒng)計(jì)工具,那咱就不得不說一說虛擬內(nèi)存原理。
在系統(tǒng)中運(yùn)行的每個(gè)進(jìn)程都需要使用到內(nèi)存,但不是每個(gè)進(jìn)程都需要每時(shí)每刻使用系統(tǒng)分配的內(nèi)存空間。當(dāng)系統(tǒng)運(yùn)行所需內(nèi)存超過實(shí)際的物理內(nèi)存,內(nèi)核會(huì)釋放某些進(jìn)程所占用但未使用的部分或所有物理內(nèi)存,將這部分資料存儲(chǔ)在磁盤上直到進(jìn)程下一次調(diào)用,并將釋放出的內(nèi)存提供給有需要的進(jìn)程使用。
在Linux內(nèi)存管理中,主要是通過“調(diào)頁P(yáng)aging”和“交換Swapping”來完成上述的內(nèi)存調(diào)度。調(diào)頁算法是將內(nèi)存中最近不常使用的頁面換到磁盤上,把活動(dòng)頁面保留在內(nèi)存中供進(jìn)程使用。交換技術(shù)是將整個(gè)進(jìn)程,而不是部分頁面,全部交換到磁盤上。
分頁(Page)寫入磁盤的過程被稱作Page-Out,分頁(Page)從磁盤重新回到內(nèi)存的過程被稱作Page-In。當(dāng)內(nèi)核需要一個(gè)分頁時(shí),但發(fā)現(xiàn)此分頁不在物理內(nèi)存中(因?yàn)橐呀?jīng)被Page-Out了),此時(shí)就發(fā)生了分頁錯(cuò)誤(Page Fault)。
當(dāng)系統(tǒng)內(nèi)核發(fā)現(xiàn)可運(yùn)行內(nèi)存變少時(shí),就會(huì)通過Page-Out來釋放一部分物理內(nèi)存。經(jīng)管Page-Out不是經(jīng)常發(fā)生,但是如果Page-out頻繁不斷的發(fā)生,直到當(dāng)內(nèi)核管理分頁的時(shí)間超過運(yùn)行程式的時(shí)間時(shí),系統(tǒng)效能會(huì)急劇下降。這時(shí)的系統(tǒng)已經(jīng)運(yùn)行非常慢或進(jìn)入暫停狀態(tài),這種狀態(tài)亦被稱作thrashing(顛簸)。
二、命令詳解
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]
命令選項(xiàng)說明如下:
-a:顯示活躍和非活躍內(nèi)存
-f:顯示從系統(tǒng)啟動(dòng)至今的fork數(shù)量 。
-m:顯示slabinfo
-n:只在開始時(shí)顯示一次各字段名稱。
-s:顯示內(nèi)存相關(guān)統(tǒng)計(jì)信息及多種系統(tǒng)活動(dòng)數(shù)量。
delay:刷新時(shí)間間隔。如果不指定,只顯示一條結(jié)果。
count:刷新次數(shù)。如果不指定刷新次數(shù),但指定了刷新時(shí)間間隔,這時(shí)刷新次數(shù)為無窮。
-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版本信息。
下面就對我們常用的使用方式進(jìn)行詳細(xì)的總結(jié)。
三、使用實(shí)例
輸入命令:vmstat 1
輸出結(jié)果:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
3 0 361396 196772 55820 359372 0 0 13 21 1 1 2 0 98 0 0
1 0 361392 196524 55820 359616 8 0 236 0 411 527 1 0 90 9 0
2 1 361392 196524 55828 359608 0 0 0 48 370 503 1 1 98 0 0
4 0 361392 196524 55828 359616 0 0 0 0 442 559 1 0 99 0 0
字段說明:
procs(進(jìn)程)
r:當(dāng)前運(yùn)行隊(duì)列中線程的數(shù)目,代表線程處于可運(yùn)行狀態(tài),但CPU還未能執(zhí)行.,這個(gè)值可以作為判斷CPU是否繁忙的一個(gè)指標(biāo);當(dāng)這個(gè)值超過了CPU數(shù)目,就會(huì)出現(xiàn)CPU瓶頸了;這個(gè)我們可以結(jié)合top命令的負(fù)載值同步評(píng)估系統(tǒng)性能;
b:等待IO的進(jìn)程數(shù)量;如果該值一直都很大,說明IO比較繁忙,處理較慢;
memory(內(nèi)存)
swpd:虛擬內(nèi)存已使用的大小;如果swpd的值不為0,但是si,so的值長期為0,這種情況不會(huì)影響系統(tǒng)性能;
free:空閑的物理內(nèi)存的大小;
buff:用作緩沖的內(nèi)存大小;
cache:用作緩存的內(nèi)存大小;如果cache的值大的時(shí)候,說明cache處的文件數(shù)多,如果頻繁訪問到的文件都能被cache處,那么磁盤的讀IO bi會(huì)非常小;
swap(交換空間,單位:KB);內(nèi)存夠用的時(shí)候,這2個(gè)值都是0,如果這2個(gè)值長期大于0時(shí),系統(tǒng)性能會(huì)受到影響,磁盤IO和CPU資源都會(huì)被消耗。有時(shí)我們看到空閑內(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ì)受到影響的;
si:每秒從交換區(qū)寫到內(nèi)存的大小;
so:每秒寫入交換區(qū)的內(nèi)存大小;
io(單位:塊/秒)
bi:每秒讀取的塊數(shù);
bo:每秒寫入的塊數(shù);隨機(jī)磁盤讀寫的時(shí)候,這2個(gè)值越大,能看到CPU在IO等待的值也會(huì)越大;
system(系統(tǒng));這2個(gè)值越大,會(huì)看到由內(nèi)核消耗的CPU時(shí)間會(huì)越大;
in:每秒中斷數(shù),包括時(shí)鐘中斷;
cs:每秒上下文切換數(shù);
cpu(以百分比表示)
us:用戶進(jìn)程執(zhí)行時(shí)間(user time);
sy:系統(tǒng)進(jìn)程執(zhí)行時(shí)間(system time);
id:空閑時(shí)間(包括IO等待時(shí)間);
wa:等待IO時(shí)間;wa的值高時(shí),說明IO等待比較嚴(yán)重,這可能由于磁盤大量作隨機(jī)訪問造成,也有可能磁盤出現(xiàn)瓶頸。
以上就是小編今天為大家分享的關(guān)于Linux系統(tǒng)命令介紹之vmstat命令詳解的文章,希望本篇文章能夠?qū)φ趶氖翷inux相關(guān)工作的小伙伴們有所幫助。想要了解更多Linux相關(guān)知識(shí)記得關(guān)注馬哥教育官網(wǎng)。最后祝愿小伙伴們工作順利!
聲明:文章來源于網(wǎng)絡(luò),侵刪!