如何直觀的判斷你的linux系統是否健康,王海軍老師告訴你

一提到對於查看系統運行的健康狀況,可能大多數朋友考慮到的就是查看進程或者打開任務管理器,但是對於應用在真實生產環境中服務器的linux系統來說,以上兩種方式都不是最高效的查看方式,那麼今天就給大家推薦一個在linux系統中非常實用的關心繫統運行健康的方式———— ‘ vmstat ’ 命令。

vmstat命令是非常實用的一種Linux/Unix監控工具,可以直觀的瀏覽到給定的時間間隔的系統運行狀態,包括服務器的CPU使用率,內存使用情況,虛擬內存交換情況, 硬盤、內存讀寫情況。相比top,可以讓管理人員看到整個機器的CPU,內存,IO的使用情況,而不僅僅是看到單個進程的CPU使用率和內存使用率。當然也並不是說只用vmstat不用top,實際上兩者是應用於不同生產環境當中。

vmstat工具的使用是通過兩個數字參數來完成的,第一個參數是給定的時間間隔數,單位是秒,第二個參數是查看的次數。

例如:

如何直觀的判斷你的linux系統是否健康,王海軍老師告訴你

1: 給定的時間間隔, 1秒

3: 查看的次數

當然如果不加查看次數的話,會一直監控下去,如果不想監控那就直接停掉vmstat,這也是真實生產環境中常用的操作。


如何直觀的判斷你的linux系統是否健康,王海軍老師告訴你


如圖中所示,我一直運行vmstat,間隔一秒查看八次,然後停止。

接下來呢就來解釋這個命令所顯示的所有的參數的含義。

r:運行隊列(就是多少個進程真的被分配到CPU),當這個值超過了CPU個數的時候就會出現CPU瓶頸。

B:表示阻塞的進程。

Swpd:虛擬內存已使用的大小,如果大於0就表示設備物理內存不足。

Free : 空閒的物理內存的大小。

Buff :系統中目錄內容、權限等級的緩存

Cache : cache直接用來做文件緩衝(linux系統把空閒的物理內存的一部分拿來做文件和目錄的緩存,是為了提高程序執行的性能,當程序使用內存時, buffer/cached會很快地被使用。)

Si : 每秒從磁盤讀取虛擬內存的大小,如果這個值大於0,表示物理內存不夠用或者內存洩露,需要查找到耗內存較大的進程解決掉。

So : 每秒虛擬內存寫入磁盤的大小,如果這個值大於0,同樣也表示內存不夠使用。

Bi : 塊設備每秒接收的塊數量,這裡的塊設備是指系統上所有的磁盤和其他塊設備,默認塊大小是1024

Bo : 塊設備每秒發送的塊數量,bi和bo的值一般都要接近0,不然就是輸入輸出過於頻繁,需要做出調整。

In : 每秒CPU的中斷次數,包括時間中斷。

Cs :每秒上下文切換次數,例如使用者調用系統函數,就要進行上下文切換。線程的切換,也要進程上下文切換,這個值要越小越好,太大就要考慮調低線程或者進程的數目。

Us :用戶CPU時間,運行狀態下用戶空間的時間。

Sy :系統CPU時間,運行狀態下系統空間的時間,如果太高,表示系統調用時間長。

注: us+sy=進程時間(cpu時間)

Id : 空閒 CPU時間,一般來說,id + us + sy = 100

Wt : 等待IO(輸入輸出) CPU時間。


分享到:


相關文章: