Linux 中的 mpstat 是 Multiprocessor Statistics 的缩写,是实时系统监控工具。其报告与 CPU 的一些统计信息,这些信息存放在 /proc/stat 文件中。
在多 CPUs 系统里,其不但能查看所有 CPU 的平均状况信息,而且能够查看特定 CPU 的信息。mpstat 最大的特点是:可以查看多核心 cpu 中每个计算核心的统计数据;而类似工具 vmstat 只能查看系统整体 cpu 情况。
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 命令将连续生成报告。
实例 | 描述 |
---|---|
mpstat | 输出为从系统启动以来的平均值。 |
mpstat -P ALL 5 2 | 每 5 秒产生一个报告,总共产生 2 个。 |
mpstat 5 2 | 每 5 秒产生一个报告,总共产生 2 个。 |
mpstat -P 0 | 获取第一个 CPU 的报告。 |
mpstat
我们使用 mpstat 查看 CPU 的负载,具体命令如下:
mpstat
运行后,终端输出如下:
我们看到,此时输出了 CPU 的负载信息。
mpstat 5 2
我们使用 mpstat 查看 CPU 的负载并且每 5 秒产生一个报告,一共产生两个报告,具体命令如下:
mpstat 5 2
运行后,终端输出如下:
我们看到,此时每 5 秒输出了一个报告,并且输出了两个报告。
mpstat -P 0 5 2
我们使用 mpstat 查看第一个 CPU 的负载并且每 5 秒产生一个报告,一共产生两个报告,具体命令如下:
mpstat -P 0 5 2
运行后,终端输出如下:
我们看到,此时仅仅查看了第一个 CPU 的报告,并且每 5 秒输出了一个报告,输出了两个报告。
Linux 中的 mpstat 是 Multiprocessor Statistics 的缩写,是实时系统监控工具。其报告与 CPU 的一些统计信息,这些信息存放在 /proc/stat 文件中。