系統資源監控命令之“vmstat”

vmstat命令
vmstat命令在linux系統監控命令中是非常常見的監控工具,可以利用vmstat命令瞭解系統資源的使用情況以及查看當前系統中到底是哪個環節最佔用系統資源。
vmstat命令可以輸出給定時間的服務器狀態值,包括服務器的CPU使用率,內存使用,虛擬內存交換情況,IO的使用情況。

vmstat命令的使用:
一般vmstat工具的使用都是通過兩個數字參數完成的,第一個數字參數表示的是”獲取系統狀態的時間間隔(n秒獲取一次)“,第二個數字參數表示的是“獲取n次系統的狀態”,如果不指定第二個數字參數,則會獲取無限次系統的狀態,直到程序停止。

a.運行vmstat命令:
在這裏插入圖片描述
#直接運行vmstat命令只會採集一次系統的狀態就會自動結束程序。
各個字段的解釋如下:
列名:
procs
r:表示運行或者等待CPU時間片的進程數,也就是有多少個進程被分配到了CPU等待運行,我的這臺測試的機器目前的CPU比較空閒, 幾乎沒有程序在跑,當這個值超過了CPU數目,就會出現CPU瓶頸了。這個跟top的負載有關係,一般低於3說明系統的狀態良好,超過了5就要小心繫統的性能有嚴重問題了,服務器狀態比較危險。如果運行的隊列比較長,表示CPU很繁忙,一般會造成CPU的使用率很高。

b:表示進程阻塞,進程阻塞跟掛起有一些相似,區別在於掛起是一種主動的行爲,就是我們手動停止進程,而阻塞則是一種被動行爲,是在等待時間或者資源時任務的表現,我們不知道它什麼時候會被阻塞,也不能確切知道它什麼時候恢復阻塞,舉個例子:我們僱一個廚師給我們炒菜,但是廚房的炒菜資源已經用完了,所以廚師沒法幹活,我們有沒有指定他沒有資源可以做什麼,所以他只好在廚房等待,等到有資源炒菜了他纔起來做菜。這就類似於阻塞進程,沒有了資源進程沒法運行,所以只好等待資源才恢復運行狀態,這個過程是被動停止,自動恢復的。

memory
swpd:表示已經使用的虛擬內存的大小,單位是KB,如果大於0,表示機器的物理內存不足了。
free:表示空閒物理內存的大小,單位爲KB,我的這臺機器是自己安裝的虛擬機,內存只有1G,現在的剩餘內存只有387M左右了。

buff:表示內核緩存內存,我的這臺機器緩存內存大概佔用23M。

cache:表示緩衝交換分區內存,直接用來記憶我們打開的文件,給文件作緩衝,實際上是把空閒的物理內存的一部分拿出來給文件和目錄做緩存,是爲了提高程序執行的性能,當程序使用內存時,buff跟cache會很快被使用。

swap
si:表示從磁盤交換到內存的交換頁的數量,單位爲“KB/秒”,也就是每秒從磁盤讀入虛擬內存的大小,如果這個值大於0,表示物理內存不夠用或者內存泄露了,要查找耗內存進程解決掉。

so:表示從內存交換到磁盤的交換頁的數量,單位爲”KB/秒“,也就是每秒虛擬內存寫入磁盤的大小,如果這個值大於0,則跟si的值大於0一樣。

system
in:表示cpu每秒的中斷次數,包括時間中斷
cs:表示每秒環境(上下文)切換次數

cpu
按cpu的總是用百分比來顯示
us:用戶cpu使用時間,也就是用戶進程執行時間所佔百分比,處於用戶模式。

sy:系統cpu使用時間,也就是系統進程執行時間所佔百分比,處於內核模式。

id:空閒時間(包括IO等待時間),中央處理器的空閒時間,也就是空閒cpu的時間百分比

wa:IO等待時間百分比
st:被虛擬化偷走的cpu時間比率

b.動態顯示,每一秒顯示一次:
在這裏插入圖片描述
c.動態顯示,每2秒顯示一次,顯示5次:
在這裏插入圖片描述
##有某些地方本人理解不是特別清晰,所以慎言,如果有發現錯誤的話還望各位大佬給予糾正。

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