Linux系統命令介紹之vmstat命令詳解

今天小編要跟大家介紹的Linux命令是關于vmstat命令詳解。熟悉Linux系統和使用Linux系統工作的小伙伴都知道Linux的命令有很多,而真正在工作中用到的命令應該不超過幾十個,為了讓大家更好的掌握這些命令,小編為大家分享了這篇Linux vmstat命令詳解的文章,希望能夠對大家有所幫助。 Linux入門新手和正在Linux學習的小伙伴快來看一看吧,希望能夠對大家有所幫助!

Linux系統命令介紹之vmstat命令詳解

vmstat是Virtual Meomory Statistics(虛擬內存統計)的縮寫,可對操作系統的虛擬內存、進程、CPU活動進行監控。它是對系統的整體情況進行統計,不足之處是無法對某個進程進行深入分析。vmstat工具提供了一種低開銷的系統性能觀察方式。因為vmstat本身就是低開銷工具,在非常高負荷的服務器上,你需要查看并監控系統的健康情況,在控制窗口還是能夠使用vmstat輸出結果。

一、虛擬內存原理

上面說到了vmstat是虛擬內存統計工具,那咱就不得不說一說虛擬內存原理。

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

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

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

當系統內核發現可運行內存變少時,就會通過Page-Out來釋放一部分物理內存。經管Page-Out不是經常發生,但是如果Page-out頻繁不斷的發生,直到當內核管理分頁的時間超過運行程式的時間時,系統效能會急劇下降。這時的系統已經運行非常慢或進入暫停狀態,這種狀態亦被稱作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]

命令選項說明如下:

-a:顯示活躍和非活躍內存

-f:顯示從系統啟動至今的fork數量 。

-m:顯示slabinfo

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

-s:顯示內存相關統計信息及多種系統活動數量。

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

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

-d:顯示磁盤相關統計信息。

-p:顯示指定磁盤分區統計信息

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

-V:顯示vmstat版本信息。

下面就對我們常用的使用方式進行詳細的總結。

三、使用實例

輸入命令:vmstat 1

輸出結果:

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(進程)

r:當前運行隊列中線程的數目,代表線程處于可運行狀態,但CPU還未能執行.,這個值可以作為判斷CPU是否繁忙的一個指標;當這個值超過了CPU數目,就會出現CPU瓶頸了;這個我們可以結合top命令的負載值同步評估系統性能;

b:等待IO的進程數量;如果該值一直都很大,說明IO比較繁忙,處理較慢;

memory(內存)

swpd:虛擬內存已使用的大小;如果swpd的值不為0,但是si,so的值長期為0,這種情況不會影響系統性能;

free:空閑的物理內存的大小;

buff:用作緩沖的內存大小;

cache:用作緩存的內存大小;如果cache的值大的時候,說明cache處的文件數多,如果頻繁訪問到的文件都能被cache處,那么磁盤的讀IO bi會非常小;

swap(交換空間,單位:KB);內存夠用的時候,這2個值都是0,如果這2個值長期大于0時,系統性能會受到影響,磁盤IO和CPU資源都會被消耗。有時我們看到空閑內存(free)很少的或接近于0時,就認為內存不夠用了,不能光看這一點,還要結合si和so,如果free很少,但是si和so也很少(大多時候是0),那么不用擔心,系統性能這時不會受到影響的;

si:每秒從交換區寫到內存的大小;

so:每秒寫入交換區的內存大小;

io(單位:塊/秒)

bi:每秒讀取的塊數;

bo:每秒寫入的塊數;隨機磁盤讀寫的時候,這2個值越大,能看到CPU在IO等待的值也會越大;

system(系統);這2個值越大,會看到由內核消耗的CPU時間會越大;

in:每秒中斷數,包括時鐘中斷;

cs:每秒上下文切換數;

cpu(以百分比表示)

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

sy:系統進程執行時間(system time);

id:空閑時間(包括IO等待時間);

wa:等待IO時間;wa的值高時,說明IO等待比較嚴重,這可能由于磁盤大量作隨機訪問造成,也有可能磁盤出現瓶頸。

以上就是小編今天為大家分享的關于Linux系統命令介紹之vmstat命令詳解的文章,希望本篇文章能夠對正在從事Linux相關工作的小伙伴們有所幫助。想要了解更多Linux相關知識記得關注馬哥教育官網。最后祝愿小伙伴們工作順利!

【免責聲明:本文圖片及文字信息均由小編轉載自網絡,旨在分享提供閱讀,版權歸原作者所有,如有侵權請聯系我們進行刪除。】

相關新聞

聯系我們

400-080-6560

在線咨詢:點擊這里給我發消息

郵件:[email protected]

工作時間:周一至周日,09:00-18:30

QR code
北京赛pk10官方开奖记录