(在Ubuntu系統下使用mpstat工具監控CPU性能)

一、mpstat簡介

mpstat(Multiprocessor Statistics)是 Linux 系統中用於監控 CPU 使用情況的工具,尤其適合多核處理器系統。它能夠實時顯示每個 CPU 核心的利用率、中斷、空閒時間等詳細統計信息,幫助用户分析系統性能瓶頸。本文將介紹如何在 Ubuntu 系統中安裝和使用 mpstat 命令。

二、安裝 mpstat

mpstatsysstat 工具包的一部分,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 設置採樣間隔和次數*

使用 intervalcount 參數,可指定採樣間隔(秒)和次數。以下命令表示每 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 實際應用場景

  1. 排查 CPU 瓶頸
    如果 %usr%sys 持續高於 70%,可能表示 CPU 資源不足,需優化程序或升級硬件。

  2. 檢查 I/O 等待問題
    %iowait 顯著偏高,可能是磁盤或網絡 I/O 瓶頸,需進一步檢查存儲設備或網絡配置。

  3. 監控多核負載均衡
    使用 -P ALL 可查看各核心的利用率是否均衡,若某些核心負載過高,可能需要調整進程分配。

四、總結

mpstat 是一個強大的 CPU 性能監控工具,特別適合多核系統的性能分析。通過簡單的命令和選項,用户可以快速獲取 CPU 使用率、中斷、空閒時間等關鍵指標,從而優化系統性能。對於開發人員、系統管理員或運維工程師來説,掌握 mpstat 的基本用法是排查性能問題的重要技能。