Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux 系統使用 mpstat 指令監控 CPU 使用率完整指南

編輯:關於 Linux

mpstat 是 sysstat 套件提供的多處理器統計工具,能針對每個邏輯 CPU 核心顯示詳細使用率細分(user、nice、system、iowait、irq、soft、steal、guest、idle),是效能調校與瓶頸分析的核心指令之一。本文涵蓋安裝、基本用法、進階參數與實戰解讀。

安裝 sysstat 套件

RHEL / CentOS / Fedora / Rocky / AlmaLinux

sudo yum install sysstat

Debian / Ubuntu / Linux Mint

sudo apt-get update && sudo apt-get install sysstat

安裝後,systemctl enable --now sysstat 可啟用定時收集(預設每 10 分鐘),資料儲於 /var/log/sa/。

基本用法

mpstat

輸出範例:

Linux 5.14.0-284.11.1.el9_2.x86_64 (host)  03/15/2024  _x86_64_  (8 CPU)

10:30:45 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
10:30:45 AM  all   12.45    0.00    3.21    1.02    0.00    0.15    0.00    0.00    0.00   83.17
  • CPU 欄:all 為所有核心平均;0、1... 為各核心個別統計。
  • %usr:用戶空間程式佔用(不含 nice)。
  • %sys:核心空間(系統呼叫、中斷處理)佔用。
  • %iowait:等待 I/O 完成的閒置時間。持續高於 20% 暗示儲存子系統瓶頸。
  • %steal:虛擬機環境下,Hypervisor 強制奪走的 CPU 時間。高值表示宿主機超賣或鄰居佔用。
  • %idle:完全閒置百分比。

進階參數與實戰範例

1. 顯示每顆核心詳細統計

mpstat -P ALL 1 5
  • -P ALL:列出所有核心(含 all 平均)。
  • 1:取樣間隔 1 秒。
  • 5:取樣 5 次後結束。

2. 僅顯示特定核心

mpstat -P 0,3 2 10

3. 顯示中斷統計 (需核心支援)

mpstat -I SUM 1 3

4. 輸出 JSON 格式供腳本解析

mpstat -o JSON 1 3 > cpu_stats.json

5. 結合 watch 即時監控

watch -n 1 'mpstat -P ALL 1 1'

常見效能診斷場景

現象可能原因後續確認指令
%iowait 持續高磁碟/NFS/資料庫 I/O 瓶頸iostat -xz 1, iotop
%sys 异常高系統呼叫過多、鎖競爭、中斷風暴pidstat -w 1, perf top
%steal 高 (VM)宿主機 CPU 過度承諾聯繫雲端供應商、調整實例規格
單核心 %usr 100%單執行緒程式計算密集top -H, perf record -g
%nice 高低優先序批次作業運行中ps -eo pid,ni,cmd --sort=-ni | head

歷史資料分析 (sar)

sysstat 守護程式定期寫入 /var/log/sa/saDD(DD 為日期),可用 sar 回顧:

sar -u -f /var/log/sa/sa15  # 查看 15 號全天 CPU 歷史
sar -P ALL 1 10             # 即時模式等同 mpstat

總結

mpstat 輕量、標準、無需額外依賴,是 Linux 管理員「第一時間瞭解 CPU 狀態」的首選工具。掌握 -P ALL、取樣間隔與 %iowait/%steal 解讀,即可快速定位效能瓶頸方向。

Copyright © Windows教程網 All Rights Reserved