系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當前位置:系統(tǒng)之家 > 系統(tǒng)教程 > Linux中使用vmstat命令

Linux中如何使用vmstat命令

時間:2014-12-29 17:12:07 作者:qipeng 來源:系統(tǒng)之家 1. 掃描二維碼隨時看資訊 2. 請使用手機瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20141229/33658.html 手機查看 評論

  Linux下vmstat 命令可用于報告虛擬內(nèi)存的統(tǒng)計信息,除此之外,vmstat 命令還有很多用法,下面系統(tǒng)之家的小編將給大家做個vmstat 命令的詳細介紹,以便你有個了解。

 Linux中如何使用vmstat命令

  它是對系統(tǒng)的整體情況進行統(tǒng)計,不足之處是無法對某個進程進行深入分析。vmstat 工具提供了一種低開銷的系統(tǒng)性能觀察方式。因為 vmstat 本身就是低開銷工具,在非常高負荷的服務器上,你需要查看并監(jiān)控系統(tǒng)的健康情況,在控制窗口還是能夠使用vmstat 輸出結(jié)果。在學習vmstat命令前,我們先了解一下Linux系統(tǒng)中關于物理內(nèi)存和虛擬內(nèi)存相關信息。

  物理內(nèi)存和虛擬內(nèi)存區(qū)別:

  我們知道,直接從物理內(nèi)存讀寫數(shù)據(jù)要比從硬盤讀寫數(shù)據(jù)要快的多,因此,我們希望所有數(shù)據(jù)的讀取和寫入都在內(nèi)存完成,而內(nèi)存是有限的,這樣就引出了物理內(nèi)存與虛擬內(nèi)存的概念。

  物理內(nèi)存就是系統(tǒng)硬件提供的內(nèi)存大小,是真正的內(nèi)存,相對于物理內(nèi)存,在linux下還有一個虛擬內(nèi)存的概念,虛擬內(nèi)存就是為了滿足物理內(nèi)存的不足而提出的策略,它是利用磁盤空間虛擬出的一塊邏輯內(nèi)存,用作虛擬內(nèi)存的磁盤空間被稱為交換空間(Swap Space)。

  作為物理內(nèi)存的擴展,linux會在物理內(nèi)存不足時,使用交換分區(qū)的虛擬內(nèi)存,更詳細的說,就是內(nèi)核會將暫時不用的內(nèi)存塊信息寫到交換空間,這樣以來,物理內(nèi)存得到了釋放,這塊內(nèi)存就可以用于其它目的,當需要用到原始的內(nèi)容時,這些信息會被重新從交換空間讀入物理內(nèi)存。

  linux的內(nèi)存管理采取的是分頁存取機制,為了保證物理內(nèi)存能得到充分的利用,內(nèi)核會在適當?shù)臅r候?qū)⑽锢韮?nèi)存中不經(jīng)常使用的數(shù)據(jù)塊自動交換到虛擬內(nèi)存中,而將經(jīng)常使用的信息保留到物理內(nèi)存。

  要深入了解linux內(nèi)存運行機制,需要知道下面提到的幾個方面:

  首先,Linux系統(tǒng)會不時的進行頁面交換操作,以保持盡可能多的空閑物理內(nèi)存,即使并沒有什么事情需要內(nèi)存,Linux也會交換出暫時不用的內(nèi)存頁面。這可以避免等待交換所需的時間。

  其次,linux進行頁面交換是有條件的,不是所有頁面在不用時都交換到虛擬內(nèi)存,linux內(nèi)核根據(jù)”最近最經(jīng)常使用“算法,僅僅將一些不經(jīng)常使用的頁面文件交換到虛擬內(nèi)存,有時我們會看到這么一個現(xiàn)象:linux物理內(nèi)存還有很多,但是交換空間也使用了很多。其實,這并不奇怪,例如,一個占用很大內(nèi)存的進程運行時,需要耗費很多內(nèi)存資源,此時就會有一些不常用頁面文件被交換到虛擬內(nèi)存中,但后來這個占用很多內(nèi)存資源的進程結(jié)束并釋放了很多內(nèi)存時,剛才被交換出去的頁面文件并不會自動的交換進物理內(nèi)存,除非有這個必要,那么此刻系統(tǒng)物理內(nèi)存就會空閑很多,同時交換空間也在被使用,就出現(xiàn)了剛才所說的現(xiàn)象了。關于這點,不用擔心什么,只要知道是怎么一回事就可以了。

  最后,交換空間的頁面在使用時會首先被交換到物理內(nèi)存,如果此時沒有足夠的物理內(nèi)存來容納這些頁面,它們又會被馬上交換出去,如此以來,虛擬內(nèi)存中可能沒有足夠空間來存儲這些交換頁面,最終會導致linux出現(xiàn)假死機、服務異常等問題,linux雖然可以在一段時間內(nèi)自行恢復,但是恢復后的系統(tǒng)已經(jīng)基本不可用了。

  因此,合理規(guī)劃和設計linux內(nèi)存的使用,是非常重要的。

  虛擬內(nèi)存原理:

  在系統(tǒng)中運行的每個進程都需要使用到內(nèi)存,但不是每個進程都需要每時每刻使用系統(tǒng)分配的內(nèi)存空間。當系統(tǒng)運行所需內(nèi)存超過實際的物理內(nèi)存,內(nèi)核會釋放某些進程所占用但未使用的部分或所有物理內(nèi)存,將這部分資料存儲在磁盤上直到進程下一次調(diào)用,并將釋放出的內(nèi)存提供給有需要的進程使用。

  在Linux內(nèi)存管理中,主要是通過“調(diào)頁Paging”和“交換Swapping”來完成上述的內(nèi)存調(diào)度。調(diào)頁算法是將內(nèi)存中最近不常使用的頁面換到磁盤上,把活動頁面保留在內(nèi)存中供進程使用。交換技術是將整個進程,而不是部分頁面,全部交換到磁盤上。

  分頁(Page)寫入磁盤的過程被稱作Page-Out,分頁(Page)從磁盤重新回到內(nèi)存的過程被稱作Page-In。當內(nèi)核需要一個分頁時,但發(fā)現(xiàn)此分頁不在物理內(nèi)存中(因為已經(jīng)被Page-Out了),此時就發(fā)生了分頁錯誤(Page Fault)。

  當系統(tǒng)內(nèi)核發(fā)現(xiàn)可運行內(nèi)存變少時,就會通過Page-Out來釋放一部分物理內(nèi)存。經(jīng)管Page-Out不是經(jīng)常發(fā)生,但是如果Page-out頻繁不斷的發(fā)生,直到當內(nèi)核管理分頁的時間超過運行程式的時間時,系統(tǒng)效能會急劇下降。這時的系統(tǒng)已經(jīng)運行非常慢或進入暫停狀態(tài),這種狀態(tài)亦被稱作thrashing(顛簸)

  1.命令格式:

  代碼如下:

  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]

  2.命令功能:

  用來顯示虛擬內(nèi)存的信息

  3.命令參數(shù):

  -a:顯示活躍和非活躍內(nèi)存

  -f:顯示從系統(tǒng)啟動至今的fork數(shù)量 。

  -m:顯示slabinfo

  -n:只在開始時顯示一次各字段名稱。

  -s:顯示內(nèi)存相關統(tǒng)計信息及多種系統(tǒng)活動數(shù)量。

  delay:刷新時間間隔。如果不指定,只顯示一條結(jié)果。

  count:刷新次數(shù)。如果不指定刷新次數(shù),但指定了刷新時間間隔,這時刷新次數(shù)為無窮。

  -d:顯示磁盤相關統(tǒng)計信息。

  -p:顯示指定磁盤分區(qū)統(tǒng)計信息

  -S:使用指定單位顯示。參數(shù)有 k 、K 、m 、M ,分別代表1000、1024、1000000、1048576字節(jié)(byte)。默認單位為K(1024 bytes)

  -V:顯示vmstat版本信息。

  4.使用實例:

  實例1:顯示虛擬內(nèi)存使用情況

  命令:vmstat

  輸出:

  代碼如下:

 。踨oot@localhost ~]# vmstat 5 6

  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 0 3029876 199616 690980 0 0 0 2 3 2 0 0 100 0 0

  0 0 0 3029752 199616 690980 0 0 0 41 1009 39 0 0 100 0 0

  0 0 0 3029752 199616 690980 0 0 0 3 1004 36 0 0 100 0 0

  0 0 0 3029752 199616 690980 0 0 0 4 1004 36 0 0 100 0 0

  0 0 0 3029752 199616 690980 0 0 0 6 1003 33 0 0 100 0 0

  0 0 0 3029752 199616 690980 0 0 0 5 1003 33 0 0 100 0 0

  vmstat命令輸出信息詳細說明:

  字段說明:

  Procs(進程):

  r: 運行隊列中進程數(shù)量

  b: 等待IO的進程數(shù)量

  Memory(內(nèi)存):

  swpd: 使用虛擬內(nèi)存大小

  free: 可用內(nèi)存大小

  buff: 用作緩沖的內(nèi)存大小

  cache: 用作緩存的內(nèi)存大小

  Swap:

  si: 每秒從交換區(qū)寫到內(nèi)存的大小

  so: 每秒寫入交換區(qū)的內(nèi)存大小

  IO:(現(xiàn)在的Linux版本塊的大小為1024bytes)

  bi: 每秒讀取的塊數(shù)

  bo: 每秒寫入的塊數(shù)

  系統(tǒng):

  in: 每秒中斷數(shù),包括時鐘中斷。

  cs: 每秒上下文切換數(shù)。

  CPU(以百分比表示):

  us: 用戶進程執(zhí)行時間(user time)

  sy: 系統(tǒng)進程執(zhí)行時間(system time)

  id: 空閑時間(包括IO等待時間),中央處理器的空閑時間 。以百分比表示。

  wa: 等待IO時間

  備注: 如果 r經(jīng)常大于 4 ,且id經(jīng)常少于40,表示cpu的負荷很重。如果pi,po 長期不等于0,表示內(nèi)存不足。如果disk 經(jīng)常不等于0, 且在 b中的隊列 大于3, 表示 io性能不好。Linux在具有高穩(wěn)定性、可靠性的同時,具有很好的可伸縮性和擴展性,能夠針對不同的應用和硬件環(huán)境調(diào)整,優(yōu)化出滿足當前應用需要的最佳性能。因此企業(yè)在維護Linux系統(tǒng)、進行系統(tǒng)調(diào)優(yōu)時,了解系統(tǒng)性能分析工具是至關重要的。

  命令:vmstat 5 5

  表示在5秒時間內(nèi)進行5次采樣。將得到一個數(shù)據(jù)匯總他能夠反映真正的系統(tǒng)情況。

發(fā)表評論

0

沒有更多評論了

評論就這些咯,讓大家也知道你的獨特見解

立即評論

以上留言僅代表用戶個人觀點,不代表系統(tǒng)之家立場

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

官方交流群 軟件收錄