目录
一、概述
二、语法和使用
1、基本语法
2、常用选项
三、安装 mpstat
1、Debian(如 Ubuntu)的系统安装
2、CentOS 或 Fedora系统的安装
(1)安装指令
(2)安装操作
3、使用
四、示例
1. 查看所有 CPU 的统计信息
2. 查看特定 CPU(如 CPU0)的统计信息
3. 每 2 秒更新一次,共更新 5 次
4. 仅显示用户态和空闲态的 CPU 使用率
5、查看所有处理器的使用情况
五、输出解释
一、概述
mpstat 是一个在 Linux 系统中常用的工具,用于显示 CPU 的统计信息,包括每个 CPU 核心的使用率等。这个工具是 sysstat 包的一部分,sysstat 是一个收集、报告系统活动信息的软件包,包括 CPU、内存、I/O、网络等使用情况。
mpstat 特别设计用于多处理器(MP)系统,它可以提供每个处理器以及整个系统的 CPU 利用率详情。
二、语法和使用
1、基本语法
mpstat 的基本语法如下:
mpstat [选项] [间隔秒数] [次数]
- [选项]:可以指定不同的参数来控制输出的格式和内容。
- [间隔秒数]:指定报告之间的时间间隔。
- [次数]:指定要生成多少次报告。
2、常用选项
- -P ALL|CPU:指定要显示统计信息的 CPU。ALL 表示所有 CPU,CPU(如 CPU0)表示特定编号的 CPU。
- -I {SUM|CPU|SCPU|NCPU}:指定要显示的统计信息类型。默认是 CPU,表示每个 CPU 的统计信息。
- -u:仅显示用户态的 CPU 使用率。
- -s:仅显示系统态的 CPU 使用率。
- -i:仅显示空闲态的 CPU 使用率。
- -w:仅显示 I/O 等待的 CPU 使用率。
- -n:指定更新的次数。例如,-n 3 表示更新 3 次后退出。
- -d:显示 CPU 空闲时间百分比。
- -t:在输出中包含时间戳。
三、安装 mpstat
1、Debian(如 Ubuntu)的系统安装
在大多数 Linux 发行版中,mpstat 可能已经预装,或者可以通过包管理器安装。例如,在基于 Debian(如 Ubuntu)的系统中,可以使用以下命令安装:
sudo apt-get update
sudo apt-get install sysstat
2、CentOS 或 Fedora系统的安装
(1)安装指令
在基于 RPM 的系统(如 CentOS 或 Fedora)中,可以使用:
sudo yum install sysstat CentOS 7 或更早版本
sudo dnf install sysstat Fedora 或 CentOS 8 及更新版本
(2)安装操作
以centos7的安装为例,如下所示:
[root@ecs-52a1 121yunwei]# mpstat
bash: mpstat: command not found
[root@ecs-52a1 121yunwei]#
[root@ecs-52a1 121yunwei]#
[root@ecs-52a1 121yunwei]# sudo yum install sysstat
Loaded plugins: fastestmirror
Determining fastest mirrorsbase: mirrors.aliyun.comextras: mirrors.aliyun.comupdates: mirrors.aliyun.com
base | 3.6 kB 00:00:00
epel | 4.3 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package sysstat.x86_64 0:10.1.5-20.el7_9 will be installed
--> Processing Dependency: libsensors.so.4()(64bit) for package: sysstat-10.1.5-20.el7_9.x86_64
--> Running transaction check
---> Package lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7_9.1 will be installed
--> Finished Dependency ResolutionDependencies Resolved==============================================================================================================================================================Package Arch Version Repository Size
==============================================================================================================================================================
Installing:sysstat x86_64 10.1.5-20.el7_9 updates 315 k
Installing for dependencies:lm_sensors-libs x86_64 3.4.0-8.20160601gitf9185e5.el7_9.1 updates 42 kTransaction Summary
==============================================================================================================================================================
Install 1 Package (+1 Dependent package)Total download size: 357 k
Installed size: 1.2 M
Is this ok [y/d/N]: y
Downloading packages:
(1/2): lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7_9.1.x86_64.rpm | 42 kB 00:00:00
sysstat-10.1.5-20.el7_9.x86_64 FAILED
http://mirrors.aliyuncs.com/centos/7/updates/x86_64/Packages/sysstat-10.1.5-20.el7_9.x86_64.rpm: [Errno 12] Timeout on http://mirrors.aliyuncs.com/centos/7/updates/x86_64/Packages/sysstat-10.1.5-20.el7_9.x86_64.rpm: (28, 'Connection timed out after 30001 milliseconds')
Trying other mirror.
(2/2): sysstat-10.1.5-20.el7_9.x86_64.rpm | 315 kB 00:00:00
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 12 kB/s | 357 kB 00:00:30
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7_9.1.x86_64 1/2Installing : sysstat-10.1.5-20.el7_9.x86_64 2/2Verifying : sysstat-10.1.5-20.el7_9.x86_64 1/2Verifying : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7_9.1.x86_64 2/2Installed:sysstat.x86_64 0:10.1.5-20.el7_9Dependency Installed:lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7_9.1Complete!
[root@ecs-52a1 121yunwei]#
3、使用
安装完成后,可以直接运行 mpstat 命令来查看 CPU 统计信息。默认情况下,mpstat 会显示所有 CPU 的统计信息,并每秒更新一次。
mpstat
实际操作结果如下:
[121yunwei@ecs-52a1 ~]$ mpstat -P ALL 5 3
Linux 3.10.0-1160.108.1.el7.x86_64 (ecs-52a1) 07/20/2024 _x86_64_ (4 CPU)09:46:30 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
09:46:35 PM all 2.32 0.00 4.34 0.10 0.00 0.00 0.00 0.00 0.00 93.24
09:46:35 PM 0 1.42 0.00 2.83 0.00 0.00 0.00 0.00 0.00 0.00 95.75
09:46:35 PM 1 3.03 0.00 5.66 0.00 0.00 0.00 0.00 0.00 0.00 91.31
09:46:35 PM 2 1.42 0.00 2.63 0.20 0.00 0.00 0.00 0.00 0.00 95.75
09:46:35 PM 3 3.22 0.00 6.04 0.00 0.00 0.00 0.00 0.00 0.00 90.7409:46:35 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
09:46:40 PM all 2.17 0.00 4.39 0.05 0.00 0.00 0.00 0.00 0.00 93.40
09:46:40 PM 0 1.41 0.00 2.82 0.20 0.00 0.00 0.00 0.00 0.00 95.56
09:46:40 PM 1 3.21 0.00 6.21 0.00 0.00 0.00 0.00 0.00 0.00 90.58
09:46:40 PM 2 1.21 0.00 2.63 0.20 0.00 0.00 0.00 0.00 0.00 95.96
09:46:40 PM 3 3.02 0.00 6.04 0.00 0.00 0.00 0.00 0.00 0.00 90.95
^CAverage: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
Average: all 2.24 0.00 4.36 0.08 0.00 0.00 0.00 0.00 0.00 93.32
Average: 0 1.41 0.00 2.83 0.10 0.00 0.00 0.00 0.00 0.00 95.66
Average: 1 3.12 0.00 5.94 0.00 0.00 0.00 0.00 0.00 0.00 90.95
Average: 2 1.31 0.00 2.63 0.20 0.00 0.00 0.00 0.00 0.00 95.85
Average: 3 3.12 0.00 6.04 0.00 0.00 0.00 0.00 0.00 0.00 90.85
[121yunwei@ecs-52a1 ~]$
四、示例
1. 查看所有 CPU 的统计信息
mpstat
2. 查看特定 CPU(如 CPU0)的统计信息
mpstat -P CPU0
3. 每 2 秒更新一次,共更新 5 次
mpstat -n 5 2
4. 仅显示用户态和空闲态的 CPU 使用率
mpstat -u -i
5、查看所有处理器的使用情况
如果想查看所有处理器的使用情况,并每 5 秒输出一次,共输出 3 次,可以使用以下命令:
mpstat -P ALL 5 3
这将显示每个处理器的使用情况,以及整体的 CPU 使用率统计。
五、输出解释
mpstat 的输出通常包括多个列,每列代表不同的统计信息,如:
%usr(用户态 CPU 使用率)、
%nice(低优先级用户态 CPU 使用率)、
%sys(系统态 CPU 使用率)、
%iowait(I/O 等待时间百分比)、
%irq(硬中断时间百分比)、
%soft(软中断时间百分比)、
%steal(虚拟化环境中,其他操作系统占用该虚拟 CPU 的时间百分比)、
%guest(在虚拟 CPU 上运行虚拟机的时间百分比)、
%gnice(低优先级虚拟 CPU 时间百分比)、
%idle(空闲时间百分比)等。
通过这些信息,可以了解系统在不同方面的性能表现,进而进行性能调优或故障诊断。