linux主機監控命令-vmstat

VMSTAT用法

 

一、虛擬內存運行原理

 

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

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

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

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

 

三、使用vmstat

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]

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

-f:顯示從系統啓動至今的fork數量 。引申閱讀: http://www.cnblogs.com/leoo2sk/archive/2009/12/11/talk-about-fork-in-linux.html

-m顯示slabinfo

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

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

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

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

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

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

-S:使用指定單位顯示。參數有 k K m M ,分別代表1000102410000001048576字節(byte)。默認單位爲K1024 bytes

-V:顯示vmstat版本信息。

 

2.使用說明

例子1:每2秒輸出一條結果

 

VMSTAT用法

 

一、虛擬內存運行原理

 

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

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

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

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

 

三、使用vmstat

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]

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

-f:顯示從系統啓動至今的fork數量 。引申閱讀: http://www.cnblogs.com/leoo2sk/archive/2009/12/11/talk-about-fork-in-linux.html

-m顯示slabinfo

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

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

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

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

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

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

-S:使用指定單位顯示。參數有 k K m M ,分別代表1000102410000001048576字節(byte)。默認單位爲K1024 bytes

-V:顯示vmstat版本信息。

 

2.使用說明

例子1:每2秒輸出一條結果

 

字段說明:

Procs(進程):

r: 運行隊列中進程數量

b: 等待IO的進程數量

Memory(內存):

swpd: 使用虛擬內存大小

free: 可用內存大小

buff: 用作緩衝的內存大小

cache: 用作緩存的內存大小

Swap

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

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

IO:(現在的Linux版本塊的大小爲1024bytes

bi: 每秒讀取的塊數

bo: 每秒寫入的塊數

 

系統:

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

cs: 每秒上下文切換數。

CPU(以百分比表示):

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

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

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

wa: 等待IO時間

st = steal (time given to other DomU instances)]

 

例子2:顯示活躍和非活躍內存

使用-a選項顯示活躍和非活躍內存時,所顯示的內容除增加inactactive外,其他顯示內容與例子1相同。

字段說明:

Memory(內存):

inact: 非活躍內存大小(當使用-a選項時顯示)

active: 活躍的內存大小(當使用-a選項時顯示)

 

 

字段說明:

Procs(進程):

r: 運行隊列中進程數量

b: 等待IO的進程數量

Memory(內存):

swpd: 使用虛擬內存大小

free: 可用內存大小

buff: 用作緩衝的內存大小

cache: 用作緩存的內存大小

Swap

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

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

IO:(現在的Linux版本塊的大小爲1024bytes

bi: 每秒讀取的塊數

bo: 每秒寫入的塊數

 

系統:

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

cs: 每秒上下文切換數。

CPU(以百分比表示):

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

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

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

wa: 等待IO時間

st = steal (time given to other DomU instances)]

 

例子2:顯示活躍和非活躍內存

使用-a選項顯示活躍和非活躍內存時,所顯示的內容除增加inactactive外,其他顯示內容與例子1相同。

字段說明:

Memory(內存):

inact: 非活躍內存大小(當使用-a選項時顯示)

active: 活躍的內存大小(當使用-a選項時顯示)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章