歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

Linux vmstat 命令詳解

vmstat  命令是最常見的Linux/Unix監控工具,可以展現給定時間間隔的服務器的狀態值,包括服務器的CPU使用率,MEM內存使用,VMSwap虛擬內存交換情況,IO讀寫情況。

這個命令是查看Linux/Unix最好的命令,一個是Linux/Unix都支持,二是相比top,可以看到整個機器的CPU,內存,IO的使用情況,而不是單單看到各個進程的CPU使用率和內存使用率(使用場景不一樣)。

工作原理:

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

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

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

當系統內核發現可運行內存變少時,就會通過Page-Out來釋放一部分物理內存。盡管Page-Out不是經常發生,但是如果Page-out頻繁不斷的發生,直到當內核管理分頁的時間超過運行程式的時間時,系統效能會急劇下降。這時的系統已經運行非常慢或進入暫停狀態,這種狀態亦被稱作thrashing(顛簸)。http://www.linuxidc.com

命令示例

vmstat工具的使用是通過兩個數字參數來完成的,第一個參數是采樣的時間間隔數(單位是秒);第二個參數是采樣的次數,如:

root@Ubuntu:~# vmstat 2 1
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b  swpd  free  buff  cache  si  so    bi    bo  in  cs us sy id wa
 1  0      0 3498472 315836 3819540    0    0    0    1    2    0  0  0 100  0
2表示每個兩秒采集一次服務器狀態,1表示只采集一次。 


實際上,在應用過程中,我們會在一段時間內一直監控,不想監控直接結束vmstat就行了,例如:

root@ubuntu:~# vmstat 2
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b  swpd  free  buff  cache  si  so    bi    bo  in  cs us sy id wa
 1  0      0 3499840 315836 3819660    0    0    0    1    2    0  0  0 100  0
 0  0      0 3499584 315836 3819660    0    0    0    0  88  158  0  0 100  0
 0  0      0 3499708 315836 3819660    0    0    0    2  86  162  0  0 100  0
 0  0      0 3499708 315836 3819660    0    0    0    10  81  151  0  0 100  0
 1  0      0 3499732 315836 3819660    0    0    0    2  83  154  0  0 100  0
這表示vmstat每2秒采集數據,一直采集直到我結束程序,這裡采集了5次數據我就結束了程序。

Copyright © Linux教程網 All Rights Reserved