侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux mpstat命令教程:如何监控CPU性能状态(附案例详解和注意事项)

Linux mpstat命令介绍

mpstat(Multiprocessor Statistics)是sysstat包中的一个工具,它用来展示各个可用CPU的统计数据,包括用户空间占用、系统空间占用、iowait以及其他指标。这些信息可以帮助系统管理员监控和分析CPU性能,并据此进行调优。

Linux mpstat命令适用的Linux版本

mpstat命令在大多数Linux发行版中都是可用的,如Ubuntu, Debian, Fedora, RHEL, CentOS等。对于某些可能没有预装该命令的发行版,可以通过包管理器进行安装。

CentOS 7 安装mpstat:

[linux@bashcommandnotfound.cn ~]$ sudo yum install sysstat

CentOS 8 安装mpstat:

[linux@bashcommandnotfound.cn ~]$ sudo dnf install sysstat

Ubuntu/Debian 安装mpstat:

[linux@bashcommandnotfound.cn ~]$ sudo apt-get install sysstat

Linux mpstat命令的基本语法

语法格式如下:

mpstat [选项] [间隔] [次数]

Linux mpstat命令的常用选项或参数说明

选项描述
-A显示所有可用的统计信息
-u显示CPU的使用情况,默认选项
-P指定监控的CPU编号,ALL表示所有CPU
-V显示版本信息
间隔两次统计之间的时间间隔(秒)
次数显示的次数,与间隔连用,表示持续监控一段时间

Linux mpstat命令的实例

实例1:查看所有CPU的当前统计信息

[linux@bashcommandnotfound.cn ~]$ mpstat -P ALL

实例2:每隔2秒显示一次CPU统计信息,共显示5次

[linux@bashcommandnotfound.cn ~]$ mpstat 2 5

实例3:显示特定CPU(如CPU0)的使用情况

[linux@bashcommandnotfound.cn ~]$ mpstat -P 0

实例4:使用mpstat监控系统CPU使用率的变化

[linux@bashcommandnotfound.cn ~]$ mpstat -u 1 10

这个命令会每1秒钟收集一次CPU使用率的数据,连续收集10次。

实例5:查看CPU使用情况的历史数据

[linux@bashcommandnotfound.cn ~]$ sar -P ALL

这个命令使用sysstat包中的sar命令来查看CPU在过去的使用情况数据。sar命令可以用来收集、报告或保存系统活动信息。

实例6:输出详细的CPU使用情况到文件

[linux@bashcommandnotfound.cn ~]$ mpstat -P ALL 1 > cpu_usage.txt

使用重定向>,可以将mpstat的输出保存到文件中。在这个例子中,每1秒钟采集一次所有CPU的详细使用情况,并将输出保存到cpu_usage.txt文件中。

实例7:结合grep命令过滤输出

[linux@bashcommandnotfound.cn ~]$ mpstat -P ALL | grep -v "idle"

此命令显示所有CPU的统计信息,但使用grep命令排除了包含"idle"的行,因此不显示空闲时间。

实例8:监控单个CPU的详细使用情况

[linux@bashcommandnotfound.cn ~]$ mpstat -P 1 1 5

这个命令每秒钟监控CPU1的使用情况,连续监控5次。

实例9:查看CPU在用户空间和内核空间的时间分配

[linux@bashcommandnotfound.cn ~]$ mpstat -P ALL -u

这个命令显示所有CPU在用户空间(%usr)和内核空间(%sys)的时间分配。

实例10:结合awk命令进行数据处理

[linux@bashcommandnotfound.cn ~]$ mpstat -P ALL 1 5 | awk '/Average:/ && $3 ~ /[0-9.]+/ {print $2, $3}'

使用awk,这个命令在mpstat运行后仅显示CPU编号和其平均使用率。awk在这里用于搜索包含“Average:”的行,并打印出CPU编号(2)和平均使用率(3)。

实例11:实时监控并排序输出

结合watchsort命令,可以实时监控并对输出进行排序:

[linux@bashcommandnotfound.cn ~]$ watch -n 1 "mpstat -P ALL 1 1 | sort -k 3"

这个命令每秒更新一次,显示所有CPU的使用情况,并按照第三列(通常是CPU编号)进行排序。

实例12:查看中断时间

[linux@bashcommandnotfound.cn ~]$ mpstat -I ALL

通过-I选项,可以显示CPU处理硬件和软件中断的时间统计信息。

实例13:结合crontab定时收集CPU使用情况

[linux@bashcommandnotfound.cn ~]$ crontab -e

然后添加以下定时任务:

*/5 * * * * /usr/bin/mpstat -P ALL >> /var/log/cpu_usage.log

这个crontab条目意味着每5分钟收集一次所有CPU的使用情况,并追加到/var/log/cpu_usage.log文件中。

高级技巧

实时监控CPU使用率

结合watch命令,可以实时监控CPU使用率:

[linux@bashcommandnotfound.cn ~]$ watch -n 1 mpstat -P ALL

这个命令将会每秒刷新一次所有CPU的使用情况。

Linux mpstat命令的注意事项

  • mpstat命令是sysstat工具包的一部分,如果系统没有预装,需要手动安装。
  • 在使用mpstat时,确保有足够的权限,某些统计数据可能需要管理员权限才能查看。
  • 注意查看mpstat的版本信息,因为不同版本的mpstat可能会有不同的选项和功能。
  • 如果在使用mpstat时遇到了bash: mpstat: command not found的错误,按照上面的方法进行安装即可。
0

评论区