Linux系统命令:监控 CPU 性能的工具mpstat详解

目录

一、概述

二、语法和使用

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 mirrors
  base: mirrors.aliyun.com
  extras: mirrors.aliyun.com
  updates: 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 Resolution

Dependencies 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 k

Transaction 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 transaction
  Installing : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7_9.1.x86_64                                                                                  1/2
  Installing : sysstat-10.1.5-20.el7_9.x86_64                                                                                                             2/2
  Verifying  : sysstat-10.1.5-20.el7_9.x86_64                                                                                                             1/2
  Verifying  : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7_9.1.x86_64                                                                                  2/2

Installed:
  sysstat.x86_64 0:10.1.5-20.el7_9

Dependency Installed:
  lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7_9.1

Complete!
[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.74

09: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
^C

Average:     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(空闲时间百分比)等。

        通过这些信息,可以了解系统在不同方面的性能表现,进而进行性能调优或故障诊断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值