/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 命令报告以下信息:
当省略了 –a 和 –A 选项时,是为其显示统计信息的处理器 ID。
对于 –a 选项,是为其聚合统计信息的处理器集 ID。
对于 –A core 选项,是为其聚合统计信息的核心 ID。
对于 –A soc 选项,是针对其聚合统计信息的套接字 ID。
对于 –A bins 选项,是针对其聚合统计信息的 Bin 序号。
较小的故障
较大的故障
处理器间的交叉调用
中断
作为线程的中断(不是对时钟中断进行计数)
上下文切换
偶然上下文切换
线程迁移(至其他处理器)
互斥锁上的自旋锁(第一次尝试时未获得锁)
读取器/写入器锁上的自旋锁(第一次尝试时未获得锁)
系统调用
用户时间百分比
系统时间百分比
I/O 等待时间不再以 CPU 时间的百分比来计算,该统计将始终返回零。
空闲时间百分比
请求的处理器集中的处理器数
每个 CPU 的处理器集成员关系
支持以下选项:
按处理器集聚合输出。按处理器集对输出排序。缺省输出是按 CPU 编号排序。
按核心 ID 聚合 CPU 输出。具有相同核心 ID 的数据行将聚合到一个行中。缺省情况下,列将替换为小计。而 –m 选项将输出列平均值。
–A 选项与用于按处理器集进行聚合的 –a 选项不兼容。
按套接字 ID 聚合 CPU 输出。具有相同套接字 ID 的数据行聚合为一行。缺省情况下,列将替换为小计。而 –m 选项将输出列平均值。
–A 选项与用于按处理器集进行聚合的 –a 选项不兼容。
将每个抽样期间内的行聚合到容器 (bin) 中,按其出现顺序对其分组,并针对每个 bin 聚合行。在执行 bin 聚合步骤之前,可以使用 –k 选项来更改行顺序。sze 列会输出每个 bin 中的 CPU 数。BIN 列替换 CPU 列并输出每个 bin 的序号。
先处理按 ID (–A core|soc) 的聚合,然后进行排序 (–k)。接下来按 bin (–A bins) 进行分组。最后,每个间隔输出的输出行的数量可能会受 –o 限制。
–A 选项与用于按处理器集进行聚合的 –a 选项不兼容。
重放之前保存在 statfile 中的数据。通过指定 –O 来创建用于重放的数据文件。该选项尤其适用于分析具有大量 CPU 的计算机的统计信息。可以使用不同的排序和聚合选项对文件进行多次重新处理。
–I 选项不能与 interval 和 count 一起指定。
如果文件名称为 —(连字符),则将从标准输入进行读取。
每个抽样期间内的行依次按照 key1、key2 等从高到低排序。每个 key 可以是任何列标题,例如 xcal、intr、sys 等。
当使用 –a 或 –A 选项来聚合多个 CPU 的数据时,将输出算术平均值而不是总和。
在应用排序和聚合选项后,仅输出每个抽样期间内的前 num 行。
将所有数据保存到 statfile 中。以后可以使用 –I 重放该数据。
如果文件名为 —(连字符),则将写入到标准输出。
–O 的用途是捕获所有的可用数据。它与以下数据缩减选项不兼容:–a、–A、–k、–m、–o、–p 和 –P。
报告每个 CPU 的处理器集成员关系。按处理器集对输出排序。缺省输出是按 CPU 编号排序。
只显示指定 set 中的处理器。
隐藏与状态更改相关的消息。
指定 u 表示时间的内部表示形式的印刷表示形式。请参见 time(2)。指定 d 表示标准日期格式。请参见date(1)。
每 interval 秒报告一次。
只输出 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):
|
调用正在发展中。用户可读的输出不稳定。
sar(1)、date(1)、iostat(1M)、sar(1M)、vmstat(1M)、time(2)、attributes(5)
由于生成的百分比数字存在舍入误差,CPU 使用总量可能与 100 略有差别。
用于 CPU 处理的总时间是针对用户和系统操作报告的 usr 和 sys 输出值的总和。idl 值报告 CPU 因暂停磁盘 I/O 操作以外的其他任何原因而处于空闲状态的时间。
运行带有 –x 选项的 iostat 命令可以报告 svc_t 输出中的 I/O 服务时间。iostat 实用程序也报告相同的 wt、用户 (us) 以及系统 (sy) 统计信息。有关更多信息,请参见 iostat(1M)。
在 zone 中执行时,如果池工具处于活动状态,mpstat(1M) 仅提供该 zone 绑定到的池中的处理器集内的那些处理器的信息。