Go to main content

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

退出打印视图

更新时间: 2022年7月27日 星期三
 
 

iostat(8)

名称

iostat - 报告 I/O 统计信息

用法概要

/usr/bin/iostat [-cCdDeEiILmMnpPrstwxXYuz] [-l n] [-T u | d]
 [disk]... [interval [count]]

描述

iostat 实用程序重复报告终端、磁盘和磁带 I/O 活动,以及 CPU 使用情况。输出的第一行针对自引导后的所有时间;随后每一行仅针对前一个时间间隔。

为计算此信息,内核要维护大量计数器。对于每个磁盘,内核都会对读取、写入、位读取和位写入情况进行计数。内核还会取得队列入口点和退出点处的 hi-res 时间戳,使它可以为每个队列跟踪驻留时间以及累积驻留长度。使用这些值,iostat 会得出关于总处理能力、使用情况、队列长度、事务处理速度和服务时间的非常准确的测量值。对于全体终端,内核只对输入和输出字符数进行计数。

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


<<device added: sd0>>
<<device removed: sd0>>
<<partition added: sd0,a>>
<<partition removed: sd0,a>>
<<NFS mounted: nfs1>>
<<NFS unmounted: nfs1>>
<<multi-path added: ssd4>>
<<multi-path removed: ssd4>>
<<controller added: c1>>
<<controller removed: c1>>
<<processors added: 1, 3>>
<<processors removed: 1, 3>>

请注意,根据情况,这些状态更改消息中打印的 names–n–m 选项影响。

有关更多常规系统统计信息,请使用 sar(1)sar(8)vmstat(8)

输出

iostat 实用程序的输出包括以下信息。

device

磁盘名称

r/s

每秒读取次数

w/s

每秒写入次数

kr/s

每秒读取的千字节数

间隔期间的平均 I/O 大小可以由 kr/s 除以 r/s 计算得出。

kw/s

每秒写入的千字节数

间隔期间的平均 I/O 大小可以由 kw/s 除以 w/s 计算得出。

wait

等待服务的平均事务数(队列长度)

这是保留在设备驱动器队列中等待设备接受的 I/O 操作的数量。

actv

正在处理的平均事务数(已从队列删除但尚未完成)

这是被设备接受但仍未处理的 I/O 操作的数量。

svc_t

事务的平均响应时间(以毫秒为单位)

svc_t 输出报告设备的整体响应时间,而不是服务时间。整体时间包括事务在队列中的时间和事务被处理的时间。在队列中花费的时间以 wsvc_t 输出列中的 –x 选项显示。处理事务所花费的时间是真正的服务时间。服务时间也以 –x 选项显示,出现在同一报告的 asvc_t 输出列中。

%w

存在等待服务的事务的时间百分比(队列非空)

对于 NFS,这是至少有一个等待启动的异步请求的时间百分比

%b

磁盘忙碌的时间百分比(事务在进行中)

对于 NFS,这是至少有一个暂挂 NFS RPC(即系统正在等待服务器给出回复)的时间百分比

wsvc_t

等待队列中的平均服务时间(以毫秒为单位)

asvc_t

活动事务的平均服务时间(以毫秒为单位)

st

虚拟机管理程序所用 CPU 时间的百分比。在物理硬件上运行时,始终为零。

选项

支持以下选项:

–c

报告系统在用户模式、系统模式下花费的时间、虚拟机管理程序所用时间(请参见以下 st 的定义)和空闲的时间百分比。有关更多信息,请参见“附注”部分。

–C

同时也选择了 –x 选项时,报告通过 controller id 聚合的扩展磁盘统计信息。

–d

对于每个磁盘,报告每秒传输的千字节数、每秒的传输数量以及平均服务时间(以毫秒为单位)。

–D

对于每个磁盘,报告每秒读取次数、每秒写入次数以及磁盘使用百分比。

–e

显示设备错误汇总统计信息。显示全部错误、硬错误、软错误以及传输错误。

–E

显示全部设备错误统计信息。

–i

–E 输出中,显示设备 ID,而非序列号Device Id 是驱动程序通过 ddi_devid_register(9F) 注册的唯一标识符。

–I

报告每个时间间隔内的计数,而非速度(如适用)。

–l n

将报告中包括的磁盘数量限制为 n–d–D 的磁盘限制缺省为 4,对 –x 无限制。请注意,显式请求的磁盘(请参见下文的 disk)不受此磁盘限制的约束。

–L

报告 IO 延迟分配统计信息。此选项可与 –x 选项结合使用来观察磁盘 IO 延迟统计信息。对于启用了 MPxIO 的系统,此选项也可与 –Y 选项结合使用来观察每个路径的延迟统计信息。请注意,标签 '1us' 表示 '1024ns',而 '1ms' 表示 '1024*1024ns'。此选项不能与 –t–c 选项结合使用,如果与 –E 选项结合使用,此选项会被忽略。Numbers reported in the distribution may not add up to the exact same value as the total as snopshots may be taken over very slightly distjoint time periods.

–m

报告文件系统挂载点。如果还指定了 –P–p 选项或者其与 –Xn–en 一起使用时,该选项最有用。仅当输出中实际列出挂载点时,–m 选项才有用。该选项仅可与 –n 选项共同使用。

–M

以 MB/秒(而非 KB/秒)显示数据吞吐量。

–n

以描述性格式显示名称。例如,cXtYdZrmt/Nserver:/export/path

缺省情况下,通过诸如 ssd23md301 等的实例名来标识磁盘。结合 –n 选项和 –x 选项,会以 cXtYdZsN 格式显示磁盘名称,从而更容易与其物理硬件特性关联。cXtYdZsN 格式在 Fibre Channel (FC) 环境中特别有用,其中 FC 全局名称显示在 t 字段中。

–p

对于每个磁盘,既按设备也按分区报告统计信息。

–P

对每个磁盘,仅按分区报告统计信息,没有按磁盘统计信息。

–r

以逗号分隔格式显示数据。

–s

取消与 state changes 有关的消息。

–t

报告每秒向终端读取和写入的字符数。

–T u | d

显示时间戳。

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

–w

Wide display format.

Using this option along with either of the options –x, –X, –Y or their combinations will display the output in wider format.The headers will be more descriptive and two space gap is provided between each column in this display.

Refer the Example section for sample outputs.

–X

对于 scsi_vhci(4D) 控制下的磁盘,除磁盘 lun 统计信息外,还会报告 lun.controller 的统计信息。

–x

报告扩展磁盘统计信息。缺省情况下,通过诸如 ssd23md301 等的实例名来标识磁盘。结合 x 选项和 –n 选项,会以 cXtYdZsN 格式显示磁盘名称,从而更容易与其物理硬件特性关联。使用 cXtYdZsN 格式在 FibreChannel 环境中特别有帮助,其中 FC 全局名称显示在 t 字段中。

如果不请求输出显示(无 –x–e–E),则暗含 –x

–Y

对于 scsi_vhci(4D) 控制下的磁盘,除磁盘 lun 统计信息外,还会报告 lun .targetportlun.targetport.controller 的统计信息。

–n(描述性)模式下,使用路径的 target-port 属性显示 targetport。没有 –n,会使用较短 port-id 显示 targetport。所有具有相同 target-port 属性值的目标端口共享相同 port-idtarget-portport-id 关联在重新引导后不会保留。

如果不请求输出显示(无 –x–e–E),则暗含 –x

–u

Print micro-second resolution for wsvc_t and asvc_t fields.Must be used with -x.

–z

不会打印底层数据值都是零的行。

选项设置 –xcnCXTdz interval 对于确定是否存在磁盘 I/O 问题以及识别问题特别有用。

操作数

支持下列操作数:

count

仅显示 count 个报告。

disk

明确指定要报告的磁盘;除了任何明确磁盘外,还将报告达到磁盘限制(请参见上面的 –l 选项)的任何活动磁盘。

interval

interval 秒报告一次。

示例

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

以下命令显示通过 controller id 为用户 (us) 和系统 (sy) 操作聚合的扩展设备统计信息的两个报告。因为 –n 选项与 –x 选项一起使用,以控制器名称标识设备。

example% iostat –xcnCXTdz 5


Thursday, May 23, 2013 09:17:03 AM PDT
    cpu
 us sy st id
 14 31  0 20
                    extended device statistics
  r/s    w/s    kr/s      kw wait  actv wsvc_t asvc_t  %w  %b device
  3.8   29.9   145.8    44.0  0.0   0.2    0.1    6.4   0   5     c0
666.3  814.8 12577.6 17591.1 91.3  82.3   61.6   55.6   0   2    c12
180.0  234.6  4401.1  5712.6  0.0 147.7    0.0  356.3   0  98    d10

Thursday, May 23, 2013 09:17:03 AM PDT
    cpu
 us sy st id
 11 31  0 22
                    extended device statistics
  r/s    w/s    kr/s      kw wait  actv wsvc_t asvc_t  %w  %b device
  0.8   41.0     5.2    20.5 0.0    0.2    0.2    4.4   0   6     c0
565.3  581.7  8573.2 10458.9 0.0   26.6    0.0   23.2   0   3    c12
106.5   81.3  3393.2  1948.6 0.0    5.7    0.0   30.1   0  99    d10

示例 2 使用 iostat 生成 TTY 统计信息

以下命令显示关于不同操作模式下五个磁盘的活动的两个报告。因为使用了 –x 选项,以实例名称标识磁盘。

example% iostat -xt 5 2
                     extended device statistics                      tty
device   r/s   w/s   kr/s   kw/s wait actv wsvc_t asvc_t  %w  %b tin tout
blkdev0  0.0   0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0   0    1
sd0      0.1  19.3    1.4   92.4  0.0  0.0    0.2    1.6   0   1
sd1      0.0   0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0
nfs9     0.0   0.0    0.0    0.0  0.0  0.0    0.0    1.0   0   0
nfs10    0.0   0.0    0.0    0.0  0.0  0.0    0.0    7.6   0   0
nfs11    0.0   0.0    0.0    0.0  0.0  0.0    0.0   15.6   0   0
nfs12    0.3   0.0    1.9    0.0  0.0  0.0    0.0   30.5   0   1
                     extended device statistics                      tty
device   r/s   w/s   kr/s   kw/s wait actv wsvc_t asvc_t  %w  %b tin tout
blkdev0  0.0   0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0   0  132
sd0      0.0  30.8    0.0  345.6  0.0  0.1    0.0    2.1   0   1
sd1      0.0   0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0
nfs9     0.0   0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0
nfs10    0.0   0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0
nfs11    0.0   0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0
nfs12    0.0   0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0
示例 3 使用 iostat 生成分区和设备统计信息

以下命令生成每个磁盘的分区和设备统计信息。因为 –n 选项与 –x 选项一起使用,以控制器名称标识磁盘。

example% iostat -xnp

                extended device statistics
r/s  w/s  kr/s kw/s wait actv wsvc_t asvc_t %w %b device
0.4  0.3  10.4  7.9  0.0  0.0    0.0   36.9  0  1 c0t0d0
0.3  0.3   9.0  7.3  0.0  0.0    0.0   37.2  0  1 c0t0d0s0
0.0  0.0   0.1  0.5  0.0  0.0    0.0   34.0  0  0 c0t0d0s1
0.0  0.0   0.0  0.1  0.0  0.0    0.6   35.0  0  0 fuji:/export/home/user3
示例 4 显示从实例名称向描述性名称的转换

以下示例说明了使用 iostat 将特定实例名称转换成描述性名称。

example% iostat -xn sd1
                        extended device statistics
r/s    w/s   kr/s   kw/s wait actv wsvc_t asvc_t  %w  %b device
0.0    0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0 c8t1d0
示例 5 显示特定磁盘的目标端口和控制器活动

以下示例中共有四个控制器,全都连接到同一个目标端口。

# iostat -Y ssd6
                       extended device statistics
device         r/s    w/s   kr/s   kw/s wait actv wsvc_t asvc_t  %w  %b
ssd6           0.0    0.0    0.0    0.0  0.0  0.0    0.0   12.7   0   0
ssd6.t2        0.0    0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0
ssd6.t2.fp4    0.0    0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0
ssd6.t4        0.0    0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0
ssd6.t4.fp1    0.0    0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0
示例 6 使用 iostat 生成磁盘 IO 延迟分配

以下命令生成指定磁盘的路径延迟分配统计信息。

example% iostat -Lx sd1
                    extended device statistics
device    r/s    w/s   kr/s   kw/s wait actv wsvc_t asvc_t  %w  %b
sd1      14.4   16.5  426.7  758.2  0.0  0.4    0.1   13.6   0  11
latency          range         count      density distribution
               <32us             0          0.00%        0.00%
               32-64us           696        0.87%        0.87%
              64-128us          1622        2.03%        2.90%
             128-256us          5609        7.01%        9.90%
             256-512us          2655        3.32%       13.22%
            512-1024us          4745        5.93%       19.15%
                 1-2ms          4463        5.58%       24.73%
                 2-4ms          7159        8.94%       33.67%
                 4-8ms         16899       21.11%       54.78%
                8-16ms         14824       18.52%       73.30%
               16-32ms         12630       15.78%       89.08%
               32-64ms          6491        8.11%       97.19%
              64-128ms          1908        2.38%       99.58%
             128-256ms           301        0.38%       99.95%
             256-512ms            38        0.05%      100.00%
               >1024ms             0        0.00%      100.00%
                 total         80040
示例 7 iostat wide display sample-1
example% iostat -xw sd1
                                            extended device statistics
Device  Reads/s  Writes/s  Read KB/s  Written KB/s  WaitQ  SvcQ  AvSvcTimeInWaitQ AvSvcTimeActTrans  %Wait  %Busy
sd1     0.7      33.0      19.6       239.6         0.0    0.0   0.0               0.2                0      0
示例 8 iostat wide display sample-2
example% iostat -Yw sd1
                                               extended device statistics
Device        Reads/s  Writes/s  Read KB/s  Written KB/s  WaitQ  SvcQ  AvSvcTimeInWaitQ AvSvcTimeActTrans  %Wait  %Busy
sd1           0.7      33.0      19.6       239.8         0.0    0.0   0.0               0.2                0      0
sd1.t9        0.7      33.0      40.4       263.2         0.0    0.0   0.0               0.2                0      0
sd1.t9.lmrc1  0.7      33.0      40.4       263.2         0.0    0.0   0.0               0.2                0      0
示例 9 iostat wide display sample-3
example% iostat -IxnwCX sd1
                                            extended device statistics
Reads/i  Writes/i  Read KB/i  Written KB/i  WaitQ  SvcQ  AvSvcTimeInWaitQ  AvSvcTimeActTrans  %Wait  %Busy  Device
37124.0  1911845.0  1116521.1  13937283.0    0.0    0.0   0.0               0.2                0      0      c0
37124.0  1911845.0  1116521.1  13937283.0    0.0    0.0   0.0               0.2                0      0      c0t1d0
38413.0  1911778.0  2302469.1  15273619.0    0.0    0.0   0.0               0.2                0      0      c0t1d0.c1

属性

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

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

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

另请参见

date(1)sar(1)time(2)scsi_vhci(4D)attributes(7)mpstat(8)sar(8)vmstat(8)

附注

因为生成百分比数字中的舍入误差,CPU 使用总量可能与 100 略有差别。

I/0 (r/s+w/s) 速度低于 0.5/秒时,svc_t 响应时间不是非常显著。此类情况下,无害峰值相当正常。

mpstat 实用程序报告相同的 stusrsys 统计信息。有关更多信息,请参见 mpstat(8) 手册页。

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

对于 NFS,%w 指示预读或后写等异步活动。这些请求通常与应用程序 I/O 并行处理。值较大不一定表示有性能问题。