1. 程式人生 > >每天一個Linux命令之vmstat

每天一個Linux命令之vmstat

vmstat命令是一個Linux系統監控工具,可以展現給定時間間隔的伺服器狀態,配合top命令,可以更加全方位檢視當前Linux的系統是否工作正常。下面我們就來看下語法和輸入各項的含義。
一、語法
vmstat命令一般跟兩個數字引數,如:vmstat 2 100。第一個數字引數代表取樣的時間間隔數,我們這裡每2秒取樣一次並列印結果;第二個引數表示取樣次數,我們這裡取樣100次就停止。如果想一直取樣下去,只需給出第一個引數即可。
二、結果解釋
我們先執行一下該命令:

vmstat 2 5

結果如下:

vmstat.png
下面來解釋下個列的意義。
r:表示執行佇列,當該數值大於cpu個數,則表示出現了cpu瓶頸,有些程序沒有分配到可用cpu,處於等待狀態了。
b:表示阻塞的程序數。我們的系統目前沒有阻塞。
swpd:表示虛擬記憶體所使用的大小。
free:表示空閒的實體記憶體大小。
buff:快取使用的大小。
cache:檔案快取,記錄開啟的檔案。
si:每秒從磁碟讀入的虛擬記憶體大小(虛擬記憶體的大小包含了一部分實體記憶體和一部分磁碟空間)。如果這個值大於0了,表示實體記憶體不夠用了,在使用一部分磁碟空間。
so:每秒寫入磁碟的虛擬記憶體大小,如果大於0則同上。
in:每秒cpu的中斷次數。
cs:每秒上下文切換次數,這個值越小越好,越小代表系統開銷越小,大了的話,表示你的cpu花費了大量的開銷在上下文切換上,表示可能是函式呼叫太深或者執行緒或程序數太多。
us:使用者cpu時間,當頻繁跑一些cpu密集型工作(例如加解密)時,該資料會比較大。
sy:系統cpu時間,如果太高,則表示系統呼叫時間長,例如IO操作頻繁。
id:空閒cpu時間,一般來說,id+sy+us=100,我們也可以把這三個引數看成cpu使用率。