(在Ubuntu系統下使用mpstat工具監控CPU性能)
一、mpstat簡介
mpstat(Multiprocessor Statistics)是 Linux 系統中用於監控 CPU 使用情況的工具,尤其適合多核處理器系統。它能夠實時顯示每個 CPU 核心的利用率、中斷、空閒時間等詳細統計信息,幫助用户分析系統性能瓶頸。本文將介紹如何在 Ubuntu 系統中安裝和使用mpstat命令。
二、安裝 mpstat
mpstat 是 sysstat 工具包的一部分,Ubuntu 系統默認未安裝。可以通過以下命令安裝:
apt update
apt install sysstat -y
安裝完成後,mpstat 命令即可直接使用。如果安裝後無法運行,可能需要啓用 sysstat 服務以收集數據:
systemctl enable sysstat
systemctl start sysstat
檢查 sysstat 服務狀態,使用以下命令:
systemctl status sysstat
三、mpstat基本用法
3.1 查看所有 CPU 的平均使用情況
直接運行 mpstat 命令,會顯示系統啓動以來所有 CPU 的平均統計信息:
mpstat
root@jeven01:~# mpstat
Linux 5.15.0-143-generic (jeven01) 07/10/2025 _x86_64_ (4 CPU)
03:02:28 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
03:02:28 PM all 0.07 0.00 0.03 0.01 0.00 0.00 0.00 0.00 0.00 99.87
3.2 監控所有 CPU 核心的實時數據
使用 -P ALL 選項,可查看每個 CPU 核心的實時性能:
root@jeven01:~# mpstat -P ALL
Linux 5.15.0-143-generic (jeven01) 07/10/2025 _x86_64_ (4 CPU)
03:03:11 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
03:03:11 PM all 0.07 0.00 0.03 0.01 0.00 0.00 0.00 0.00 0.00 99.87
03:03:11 PM 0 0.07 0.00 0.03 0.01 0.00 0.01 0.00 0.00 0.00 99.88
03:03:11 PM 1 0.07 0.00 0.04 0.02 0.00 0.00 0.00 0.00 0.00 99.87
03:03:11 PM 2 0.07 0.01 0.03 0.01 0.00 0.00 0.00 0.00 0.00 99.87
03:03:11 PM 3 0.07 0.00 0.03 0.01 0.00 0.01 0.00 0.00 0.00 99.88
3.3 設置採樣間隔和次數*
使用 interval 和 count 參數,可指定採樣間隔(秒)和次數。以下命令表示每 2 秒採集一次數據,共採集 5 次。
mpstat 2 5
3.4 常用選項解釋及示例
常用選項詳解
| 選項 | 説明 |
|---|---|
-P {ALL|CPU編號} |
監控所有 CPU 核心(ALL)或指定編號的核心(如 -P 0)。 |
-u |
顯示 CPU 使用率(默認選項)。 |
-I |
顯示中斷統計信息(如硬件中斷、軟中斷)。 |
-V |
顯示 mpstat 版本信息。 |
-o JSON |
以 JSON 格式輸出結果,便於自動化處理。 |
- 該命令用於監控系統中第一個 CPU 核心(CPU 0)的性能統計信息,每隔 1 秒輸出一次,共輸出 3 次。
mpstat -P 0 1 3
- 以 JSON 格式輸出所有 CPU 統計信息
mpstat -P ALL -o JSON
3.5 輸出解析
root@jeven01:~# mpstat
Linux 5.15.0-143-generic (jeven01) 07/10/2025 _x86_64_ (4 CPU)
03:10:01 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
03:10:01 PM all 0.07 0.00 0.03 0.01 0.00 0.00 0.00 0.00 0.00 99.87
輸出字段解析 mpstat 的輸出包含多個關鍵字段,以下是主要字段的含義:
| 字段 | 含義 |
|---|---|
%usr |
用户態程序佔用 CPU 的百分比(不包含 nice 值為負的進程)。 |
%nice |
低優先級用户態程序(nice 值為負)佔用 CPU 的百分比。 |
%sys |
內核態程序(系統調用)佔用 CPU 的百分比。 |
%iowait |
CPU 等待 I/O 操作完成的時間佔比。 |
%irq |
處理硬件中斷的時間佔比。 |
%soft |
處理軟件中斷的時間佔比。 |
%steal |
虛擬機管理程序從虛擬機中“竊取”的 CPU 時間(僅適用於虛擬化環境)。 |
%idle |
CPU 空閒時間佔比。 |
3.6 實際應用場景
-
排查 CPU 瓶頸
如果%usr或%sys持續高於 70%,可能表示 CPU 資源不足,需優化程序或升級硬件。 -
檢查 I/O 等待問題
若%iowait顯著偏高,可能是磁盤或網絡 I/O 瓶頸,需進一步檢查存儲設備或網絡配置。 -
監控多核負載均衡
使用-P ALL可查看各核心的利用率是否均衡,若某些核心負載過高,可能需要調整進程分配。
四、總結
mpstat 是一個強大的 CPU 性能監控工具,特別適合多核系統的性能分析。通過簡單的命令和選項,用户可以快速獲取 CPU 使用率、中斷、空閒時間等關鍵指標,從而優化系統性能。對於開發人員、系統管理員或運維工程師來説,掌握 mpstat 的基本用法是排查性能問題的重要技能。