手册页部分 1M: 系统管理命令

退出打印视图

更新时间: 2014 年 7 月
 
 

mpstat(1M)

名称

mpstat - 报告每处理器或每处理器集统计信息

用法概要

/usr/bin/mpstat [-amq] [-A core|soc|bins] [-k keys] [-o num]
     [-p | -P set] [-T d | u] [-I statfile] [-O statfile]
     [interval [count]]

描述

mpstat 命令以表格形式报告处理器统计信息。表中的每一行代表一个处理器的活动。第一个表汇总自引导后的所有活动。后续的每一个表汇总上一间隔期间的活动。除非另有说明,否则所有值都将是作为每秒的事件数列出的速率。

执行内核状态命令期间,可以更改内核的 state。如果相关,状态更改消息会包括在 mpstat 输出中,以下列形式之一显示:

<<processor 3 moved from pset: -1 to: 1>>
<<pset destroyed: 1>>
<<pset created: 1>>
<<processors added: 1, 3>>
<<processors removed: 1, 3>>

mpstat 命令报告以下信息:

CPU|SET|COR|SOC|BIN
CPU

当省略了 –a–A 选项时,是为其显示统计信息的处理器 ID。

SET

对于 –a 选项,是为其聚合统计信息的处理器集 ID。

COR

对于 –A core 选项,是为其聚合统计信息的核心 ID。

SOC

对于 –A soc 选项,是针对其聚合统计信息的套接字 ID。

BIN

对于 –A bins 选项,是针对其聚合统计信息的 Bin 序号。

minf

较小的故障

mjf

较大的故障

xcal

处理器间的交叉调用

intr

中断

ithr

作为线程的中断(不是对时钟中断进行计数)

csw

上下文切换

icsw

偶然上下文切换

migr

线程迁移(至其他处理器)

smtx

互斥锁上的自旋锁(第一次尝试时未获得锁)

srw

读取器/写入器锁上的自旋锁(第一次尝试时未获得锁)

syscl

系统调用

usr

用户时间百分比

sys

系统时间百分比

wt

I/O 等待时间不再以 CPU 时间的百分比来计算,该统计将始终返回零。

idl

空闲时间百分比

sze

请求的处理器集中的处理器数

set

每个 CPU 的处理器集成员关系

选项

支持以下选项:

–a

按处理器集聚合输出。按处理器集对输出排序。缺省输出是按 CPU 编号排序。

–A core

按核心 ID 聚合 CPU 输出。具有相同核心 ID 的数据行将聚合到一个行中。缺省情况下,列将替换为小计。而 –m 选项将输出列平均值。

–A 选项与用于按处理器集进行聚合的 –a 选项不兼容。

–A soc

按套接字 ID 聚合 CPU 输出。具有相同套接字 ID 的数据行聚合为一行。缺省情况下,列将替换为小计。而 –m 选项将输出列平均值。

–A 选项与用于按处理器集进行聚合的 –a 选项不兼容。

–A bins

将每个抽样期间内的行聚合到容器 (bin) 中,按其出现顺序对其分组,并针对每个 bin 聚合行。在执行 bin 聚合步骤之前,可以使用 –k 选项来更改行顺序。sze 列会输出每个 bin 中的 CPU 数。BIN 列替换 CPU 列并输出每个 bin 的序号。

先处理按 ID (–A core|soc) 的聚合,然后进行排序 (–k)。接下来按 bin (–A bins) 进行分组。最后,每个间隔输出的输出行的数量可能会受 –o 限制。

–A 选项与用于按处理器集进行聚合的 –a 选项不兼容。

–I statfile

重放之前保存在 statfile 中的数据。通过指定 –O 来创建用于重放的数据文件。该选项尤其适用于分析具有大量 CPU 的计算机的统计信息。可以使用不同的排序和聚合选项对文件进行多次重新处理。

–I 选项不能与 interval 和 count 一起指定。

如果文件名称为 (连字符),则将从标准输入进行读取。

–k key1,...

每个抽样期间内的行依次按照 key1key2 等从高到低排序。每个 key 可以是任何列标题,例如 xcalintrsys 等。

–m

当使用 –a–A 选项来聚合多个 CPU 的数据时,将输出算术平均值而不是总和。

–o num

在应用排序和聚合选项后,仅输出每个抽样期间内的前 num 行。

–O statfile

将所有数据保存到 statfile 中。以后可以使用 –I 重放该数据。

如果文件名为 (连字符),则将写入到标准输出。

–O 的用途是捕获所有的可用数据。它与以下数据缩减选项不兼容:–a–A–k–m–o–p–P

–p

报告每个 CPU 的处理器集成员关系。按处理器集对输出排序。缺省输出是按 CPU 编号排序。

–P set

只显示指定 set 中的处理器。

–q

隐藏与状态更改相关的消息。

–T u | d

指定 u 表示时间的内部表示形式的印刷表示形式。请参见 time(2)。指定 d 表示标准日期格式。请参见date(1)

interval

interval 秒报告一次。

count

只输出 count 报告。

示例

在 80 个字符宽的显示屏上,下面的示例输出会将一到七个字符进行换行。通过将窗口变宽,可以避免此换行。

示例 1 使用 mpstat 生成用户和系统操作统计信息

以下命令按照五秒钟间隔在两个报告中生成处理器统计信息。该命令显示每个 CPU 的处理器集成员关系。用户 (usr) 和系统 (sys) 操作的缺省输出按 CPU 编号排序,按处理器集聚合。

example% mpstat -ap 5 2


SET minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl sze
  0    6   0  355  291  190  22    0    0    0   0    43   0   2  0  43   1
  1   24  17  534  207  200  70    1    0    2   0   600   4   1  0  84   2
  2   19   7  353  325  318  44    0    0    5   0   345   1   1  0  94   3
  3   36   2  149  237  236  14    0    0    4   0    97   0   0  0  98   2
SET minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl sze
  0    1   0  720  405  304  55    0    0   18   0    12   0  15  0  81   1
  1    0  69 1955  230  200 313   33    4   41   9  7086  34  10  0  19   2
  2    0  46  685  314  300 203   11    0   54   1  5287  36   6  0  28   3
  3    0   0   14  386  384   0    0    0    0   0     0   0   0  0 100   2
示例 2 显示符合过滤要求的 CPU。

以下命令显示 intr 比率最高的三个 CPU。

example% mpstat -k intr -o 3
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
 56 1143   5  975  4238   82  465   74   53  124    0 198163  42  17   0  41
123 1189   6 1315  1030  890  461   65   53  122    0 24383   27  12   0  62
  4 1184   5 1040   149   70  502   73   55  113    0 82039   31  13   0  56
示例 3 将多个 CPU 聚合为四组(按四分位数分组)

以下命令按 sys 时间将 256 CPU 聚合为四组(按四分位数分组)。

example% mpstat -A 4 -k sys
BIN minf mjf xcal intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl sze
  
0   18   0 5811  7105    1 22154   17 9529 1176   0    72    1  79   0  19  64
1    0   0 4624  1006   12 1321   42  418  175    0  3591   36  37   0  27  64
2 1195   5 1056    92   10  526   74   56  104    0 45876   27  12   0  61  64
3    0   0    2    18    8   10    0    0    0    0     1    0   0   0 100  64
示例 4 保存统计信息供以后处理

以下命令将保存统计信息供以后处理,并按计算机的核心 ID 聚合统计信息(每个核心八个 CPU)。

example% mpstat -O /tmp/t1; mpstat -I /tmp/t1 -A core
COR minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl sze
514    0   0  124    45    0   21    0    3    1    0     0    0   3   0  97   8
521    0   0   16     5    0    1    0    0    0    0     0    0   0   0 100   8
528    0   0   11     5    0    3    0    0    0    0     0    0   0   0 100   8
535    0   0    7     4    0    1    0    0    0    0     0    0   0   0 100   8
542    0   0    7     4    0    1    0    0    0    0     0    0   0   0 100   8
549    0   0   10     4    0    1    0    0    0    0     0    0   0   0 100   8
556    0   0   10     5    0    1    0    0    0    0     0    0   0   0 100   8
563    0   0    8     4    0    1    0    0    0    0     0    0   0   0 100   8

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os
接口稳定性
请参见下文。

调用正在发展中。用户可读的输出不稳定。

另请参见

sar(1)date(1)iostat(1M)sar(1M)vmstat(1M)time(2)attributes(5)

附注

由于生成的百分比数字存在舍入误差,CPU 使用总量可能与 100 略有差别。

用于 CPU 处理的总时间是针对用户和系统操作报告的 usrsys 输出值的总和。idl 值报告 CPU 因暂停磁盘 I/O 操作以外的其他任何原因而处于空闲状态的时间。

运行带有 –x 选项的 iostat 命令可以报告 svc_t 输出中的 I/O 服务时间。iostat 实用程序也报告相同的 wt、用户 (us) 以及系统 (sy) 统计信息。有关更多信息,请参见 iostat(1M)

zone 中执行时,如果池工具处于活动状态,mpstat(1M) 仅提供该 zone 绑定到的池中的处理器集内的那些处理器的信息。