Linux mpstat命令详解

Linux mpstat命令详解教程

Linux 中的 mpstat 是 Multiprocessor Statistics 的缩写,是实时系统监控工具。其报告与 CPU 的一些统计信息,这些信息存放在 /proc/stat 文件中。

在多 CPUs 系统里,其不但能查看所有 CPU 的平均状况信息,而且能够查看特定 CPU 的信息。mpstat 最大的特点是:可以查看多核心 cpu 中每个计算核心的统计数据;而类似工具 vmstat 只能查看系统整体 cpu 情况。

Linux mpstat命令详解

功能

mpstat 指令用来显示 cpu 的使用状况,将内容显示到标准输出。处理器 0 是第一个。还报告了所有处理器之间的全球平均活动。mpstat 命令既可以在 SMP 机器上使用,也可以在 UP 机器上使用,但是在后者中,只会打印全局平均活动。如果未选择活动,则默认报告是 CPU 利用率报告。

语法

mpstat [ options ] [ <interval> [ <count> ] ]

参数

参数 含义
-P {cpu l ALL} 表示监控哪个 CPU, cpu 在 [0,cpu个数-1] 中取值
internal 相邻的两次采样的间隔时间
count 采样的次数,count 只能和 delay 一起使用

输出参数

参数 释义 从/proc/stat获得数据
CPU 处理器ID
%usr 在internal时间段里,用户态的CPU时间(%),不包含 nice值为负进程 usr/total*100
%nice 在internal时间段里,nice值为负进程的CPU时间(%) nice/total*100
%sys 在internal时间段里,核心时间(%) system/total*100
%iowait 在internal时间段里,硬盘IO等待时间(%) iowait/total*100
%irq 在internal时间段里,硬中断时间(%) irq/total*100
%soft 在internal时间段里,软中断时间(%) softirq/total*100
%steal 显示虚拟机管理器在服务另一个虚拟处理器时虚拟CPU处在非自愿等待下花费时间的百分比 steal/total*100
%guest 显示运行虚拟处理器时CPU花费时间的百分比 guest/total*100
%gnice gnice/total*100
%idle 在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%) idle/total*100

说明

Interval 参数指定每个报表之间以秒为单位的时间量。值为 0(或根本没有参数)表示自系统启动(启动)以来将报告处理器统计信息。如果未将 count 参数设置为零,则可以与 Interval 参数一起指定 Count 参数。计数值决定间隔秒生成的报表数。如果未使用 count 参数指定 Interval 参数,则 mpstat 命令将连续生成报告。

vmstat与mpstat

  1. vmstat 和 mpstat 命令的差别:mpstat 可以显示每个处理器的统计,而 vmstat 显示所有处理器的统计。因此,编写糟糕的应用程序(不使用多线程体系结构)可能会运行在一个多处理器机器上,而不使用所有处理器。从而导致一个 CPU 过载,而其他 CPU 却很空闲。通过 mpstat 可以轻松诊断这些类型的问题。
  2. vmstat 中所有关于 CPU 的总结都适合 mpstat。当您看到较低的 %idle 数字时,您知道出现了 CPU 不足的问题。当您看到较高的 %iowait 数字时,您知道在当前负载下 I/O 子系统出现了某些问题。

Linux mpstat命令常用实例

实例

实例 描述
mpstat 输出为从系统启动以来的平均值。
mpstat -P ALL 5 2 每 5 秒产生一个报告,总共产生 2 个。
mpstat 5 2 每 5 秒产生一个报告,总共产生 2 个。
mpstat -P 0 获取第一个 CPU 的报告。

查看CPU负载

语法

mpstat

案例

我们使用 mpstat 查看 CPU 的负载,具体命令如下:

mpstat

运行后,终端输出如下:

92_Linux mpstat命令详解.png

我们看到,此时输出了 CPU 的负载信息。

每5秒产生一个报告

语法

mpstat 5 2

案例

我们使用 mpstat 查看 CPU 的负载并且每 5 秒产生一个报告,一共产生两个报告,具体命令如下:

mpstat 5 2

运行后,终端输出如下:

93_Linux mpstat命令详解.png

我们看到,此时每 5 秒输出了一个报告,并且输出了两个报告。

查看指定CPU报告

语法

mpstat -P 0 5 2

案例

我们使用 mpstat 查看第一个 CPU 的负载并且每 5 秒产生一个报告,一共产生两个报告,具体命令如下:

mpstat -P 0 5 2

运行后,终端输出如下:

94_Linux mpstat命令详解.png

我们看到,此时仅仅查看了第一个 CPU 的报告,并且每 5 秒输出了一个报告,输出了两个报告。

Linux mpstat命令详解总结

Linux 中的 mpstat 是 Multiprocessor Statistics 的缩写,是实时系统监控工具。其报告与 CPU 的一些统计信息,这些信息存放在 /proc/stat 文件中。