萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 監控神器 vmstat 完整指南:虛擬記憶體原理與實戰解讀

vmstat(Virtual Memory Statistics)是系統管理員掌握記憶體、CPU、I/O 壓力的核心工具。本文從虛擬記憶體原理切入,詳細解讀各欄位含義與異常判讀。

虛擬記憶體運作原理

  • 分頁:以 4KB 為單位,將閒置頁面換出至交換區,活躍頁面留在實體記憶體。
  • 交換:整個進程換出(較少見)。
  • Page Out / Page In:頁面寫入/讀出磁碟。
  • Page Fault:核心需頁面卻不在實體記憶體,觸發磁碟 I/O。
  • Thrashing(顛簸):Page Out 頻繁導致核心花費更多時間管理頁面而非執行程式,系統嚴重遲滯。

vmstat 語法與常用參數

vmstat [delay [count]]          # 基本:每 delay 秒輸出一行,共 count 次
vmstat -a                       # 顯示 active/inactive 記憶體
vmstat -s                       # 顯示記憶體/CPU/分頁等統計摘要
vmstat -d                       # 磁碟統計(讀寫次數、扇區、延遲)
vmstat -p /dev/sda1             # 指定分區統計
vmstat -S m                     # 以 MB 為單位顯示
vmstat -f                       # 開機至今 fork 總數

核心欄位解讀(預設輸出)

欄位含義異常判讀
r執行佇列進程數(含正在跑)持續 > CPU 核心數 → CPU 瓶頸
b等待 I/O 進程數(不可中斷睡眠)持續 > 0 → 磁碟/網路 I/O 瓶頸
swpd已使用虛擬記憶體 (KB)持續增長 → 實體記憶體不足
free空閒記憶體 (KB)長期極低 → 記憶體壓力
buffBuffer Cache (區塊裝置緩衝)—
cachePage Cache (檔案內容緩存)—
si每秒從交換區讀入 (KB/s)持續 > 0 → Swap In 頻繁,效能差
so每秒寫入交換區 (KB/s)持續 > 0 → Swap Out 頻繁,記憶體不足
bi每秒從區塊裝置讀入區塊數—
bo每秒寫入區塊裝置區塊數—
in每秒中斷數極高 → 硬體/驅動問題
cs每秒上下文切換數極高 → 進程/執行緒過多搶佔
us用戶態 CPU %—
sy核心態 CPU %持續高 → 系統呼叫過多
id閒置 CPU %—
wa等待 I/O CPU %持續 > 20% → 存儲瓶頸
st虛擬機被 Hypervisor 偷走 CPU %—

實戰範例:每 2 秒採樣 5 次

vmstat 2 5

觀察 si/so、wa、r/b 趨勢,判斷是否需加記憶體、優化 SQL、升級存儲。

copyright © 萬盛學電腦網 all rights reserved