vmstat(Virtual Memory Statistics)是 Linux 系統性能分析的經典工具。它不僅報告虛擬內存狀態,還涵蓋進程、CPU、I/O 等關鍵指標。本文從原理入手,詳細解讀輸出字段,助你快速發現系統瓶頸。
vmstat [-a] [-n] [-S unit] [delay [count]] vmstat -s # 顯示內存統計摘要 vmstat -m # 顯示 slab 信息 vmstat -d # 磁盤統計 vmstat -p partition # 指定分區統計
關鍵參數:-a 活躍/非活躍內存;-n 僅首行顯示表頭;-S k|K|m|M 指定單位(默認 K=1024)。
| 類別 | 字段 | 含義 |
|---|---|---|
| Procs | r | 運行隊列中等待 CPU 的進程數 |
| b | 等待 I/O 的進程數(不可中斷睡眠) | |
| Memory | swpd | 已用虛擬內存大小 |
| free | 空閒物理內存 | |
| buff | 作為 buffer 的內存(塊設備緩存) | |
| cache | 作為 cache 的內存(文件系統緩存) | |
| Swap | si | 每秒從交換區讀入內存(Page-In) |
| so | 每秒寫入交換區(Page-Out) | |
| IO | bi | 每秒讀取塊數(塊大小 1024B) |
| bo | 每秒寫入塊數 | |
| System | in | 每秒中斷數(含時鐘中斷) |
| cs | 每秒上下文切換數 | |
| CPU% | us | 用戶態佔用 |
| sy | 系統態佔用 | |
| id | 空閒(含 I/O 等待) | |
| wa | I/O 等待佔用 |
建議以 vmstat 2 10 連續采樣觀察趨勢,結合 iostat、pidstat 進一步定位具體進程或設備。