發(fā)布時間:2019-04-12 作者:騰佑科技
一提到對于查看系統(tǒng)運行的健康狀況,可能大多數朋友考慮到的就是查看進程或者打開任務管理器,但是對于應用在真實生產環(huán)境中服務器的linux系統(tǒng)來說,以上兩種方式都不是最高效的查看方式,那么今天騰佑小編就給大家推薦一個在linux系統(tǒng)中非常實用的關心系統(tǒng)運行健康的方式———— ‘ vmstat ’ 命令。
vmstat命令是非常實用的一種Linux/Unix監(jiān)控工具,可以直觀的瀏覽到給定的時間間隔的系統(tǒng)運行狀態(tài),包括服務器的CPU使用率,內存使用情況,虛擬內存交換情況, 硬盤、內存讀寫情況。相比top,可以讓管理人員看到整個機器的CPU,內存,IO的使用情況,而不僅僅是看到單個進程的CPU使用率和內存使用率。當然也并不是說只用vmstat不用top,實際上兩者是應用于不同生產環(huán)境當中。
vmstat工具的使用是通過兩個數字參數來完成的,第一個參數是給定的時間間隔數,單位是秒,第二個參數是查看的次數。
例如:

1: 給定的時間間隔, 1秒
2: 查看的次數
當然如果不加查看次數的話,會一直監(jiān)控下去,如果不想監(jiān)控那就直接停掉vmstat,這也是真實生產環(huán)境中常用的操作。

如圖中所示,我一直運行vmstat,間隔一秒查看八次,然后停止。
接下來呢就來解釋這個命令所顯示的所有的參數的含義。
r:運行隊列(就是多少個進程真的被分配到CPU),當這個值超過了CPU個數的時候就會出現CPU瓶頸。
B:表示阻塞的進程。
Swpd:虛擬內存已使用的大小,如果大于0就表示設備物理內存不足。
Free : 空閑的物理內存的大小。
Buff :系統(tǒng)中目錄內容、權限等級的緩存
Cache : cache直接用來做文件緩沖(linux系統(tǒng)把空閑的物理內存的一部分拿來做文件和目錄的緩存,是為了提高程序執(zhí)行的性能,當程序使用內存時, buffer/cached會很快地被使用。)
Si : 每秒從磁盤讀取虛擬內存的大小,如果這個值大于0,表示物理內存不夠用或者內存泄露,需要查找到耗內存較大的進程解決掉。
So : 每秒虛擬內存寫入磁盤的大小,如果這個值大于0,同樣也表示內存不夠使用。
Bi : 塊設備每秒接收的塊數量,這里的塊設備是指系統(tǒng)上所有的磁盤和其他塊設備,默認塊大小是1024
Bo : 塊設備每秒發(fā)送的塊數量,bi和bo的值一般都要接近0,不然就是輸入輸出過于頻繁,需要做出調整。
In : 每秒CPU的中斷次數,包括時間中斷。
Cs :每秒上下文切換次數,例如使用者調用系統(tǒng)函數,就要進行上下文切換。線程的切換,也要進程上下文切換,這個值要越小越好,太大就要考慮調低線程或者進程的數目。
Us :用戶CPU時間,運行狀態(tài)下用戶空間的時間。
Sy :系統(tǒng)CPU時間,運行狀態(tài)下系統(tǒng)空間的時間,如果太高,表示系統(tǒng)調用時間長。
注: us+sy=進程時間(cpu時間)
Id : 空閑 CPU時間,一般來說,id + us + sy = 100
Wt : 等待IO(輸入輸出) CPU時間。