天天看點

Linux系統分析工具之vmstat

vmstat 指令報告關于核心線程、虛拟記憶體、磁盤、陷阱和 CPU 活動的統計資訊。由

vmstat指令生成的報告可以用于平衡系統負載活動。系統範圍内的這些統計資訊(所有的處理器中)都計算出以百分比表示的平均值,或者計算其總和。

主要參數:

-a    顯示活躍和非活躍記憶體

-f    顯示從系統啟動至今的fork程序數量

-m    顯示slab資訊

-n    隻在開始時顯示一次各字段名稱

-s    顯示記憶體相關統計資訊及多種系統活動數量深

-d    顯示磁盤相關統計資訊

-p    顯示指定磁盤分區統計資訊

-S    使用指定機關顯示。參數有k、K、m、M,分别代表1000、1024、1000000、1048576位元組(byte)。預設機關為K(1024byte)

-t     統計資訊帶上時間戳

-V     顯示vmstat版本資訊。
           

常用指令

1,vmstat -a -S -M 2 5 //每二秒顯示一次系統的統計資訊,總共5次并且大小用“M”兆表示

2,vmstat -s //檢視記憶體使用的詳細資訊

3,vmstat -d //檢視磁盤的讀/寫

4,vmstat -p /dev/sda1 //檢視/dev/sda1磁盤的讀寫統計資訊

           
Linux系統分析工具之vmstat

Procs(程序)

r: 置于運作隊列中的核心線程數目。

b: 置于等待隊列(等待資源、等待輸入/輸出)的核心線程數目。

Memory(記憶體)

swpd: 使用虛拟記憶體大小,如果swpd的值不為0,但是SI,SO的值長期為0,這種情況不會影響系統性能。

free: 空閑實體記憶體大小。

active: 顯示活躍

inact: 非活躍記憶體

buff: 用作緩沖的記憶體大小。

cache: 用作緩存的記憶體大小,如果cache的值大的時候,說明cache處的檔案數多,如果頻繁通路到的檔案都能被cache處,那麼磁盤的讀IO bi會非常小。

Swap

si: 每秒從交換區寫到記憶體的大小,由磁盤調入記憶體。

so: 每秒寫入交換區的記憶體大小,由記憶體調入磁盤。

注意:記憶體夠用的時候,這2個值都是0,如果這2個值長期大于0時,系統性能會受到影響,磁盤IO和CPU資源都會被消耗。有些朋友看到空閑記憶體(free)很少的或接近于0時,就認為記憶體不夠用了,不能光看這一點,還要結合si和so,如果free很少,但是si和so也很少(大多時候是0),那麼不用擔心,系統性能這時不會受到影響的。因為linux總是先把記憶體用光

IO

bi: 清單示從塊裝置讀入資料的總量(即讀磁盤)(塊/s)。

bo: 清單示寫入塊裝置的資料總量(即寫磁盤)(塊/s)。

注意:随機磁盤讀寫的時候,這2個值越大(如超出1024k),能看到CPU在IO等待的值也會越大。

system(系統)

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

cs: 每秒上下文切換數。

注意:上面2個值越大,會看到由核心消耗的CPU時間會越大。

CPU(以百分比表示)

us: 使用者程序執行時間百分比(user time) us的值比較高時,說明使用者程序消耗的CPU時間多,但是如果長期超50%的使用,那麼我們就該考慮優化程式算法或者進行加速。

sy: 核心系統程序執行時間百分比(system time) sy的值高時,說明系統核心消耗的CPU資源多,這并不是良性表現,我們應該檢查原因。

id: 列顯示了CPU處在空閑狀态的時間百分比。

wa: IO等待時間百分比 wa的值高時,說明IO等待比較嚴重,這可能由于磁盤大量作随機通路造成,也有可能磁盤出現瓶頸(塊操作)。

id 空閑時間百分比。

st: 列顯示了虛拟機占用的CPU時間的百分比。