在 Oracle® Solaris 11.2 中管理 ZFS 文件系统

退出打印视图

更新时间: 2014 年 12 月
 
 

查看 ZFS 存储池的 I/O 统计信息

要请求池或特定虚拟设备的 I/O 统计信息,请使用 zpool iostat 命令。与 iostat 命令类似,此命令也可以显示所有 I/O 活动的静态快照,以及每个指定时间间隔的更新统计信息。可以报告以下统计信息:

alloc capacity

当前存储在池或设备中的数据量。由于具体的内部实现的原因,此数量与可供实际文件系统使用的磁盘空间量有少量差异。

有关池空间与数据集空间之间的差异的更多信息,请参见ZFS 磁盘空间记帐

free capacity

池或设备中的可用磁盘空间量。与 used 统计信息一样,该空间量与可供数据集使用的磁盘空间量也有少量差异。

read operations

发送到池或设备的读取 I/O 操作数,包括元数据请求。

write operations

发送到池或设备的写入 I/O 操作数。

read bandwidth

所有读取操作(包括元数据)的带宽,以每秒单位数表示。

write bandwidth

所有写入操作的带宽,以每秒单位数表示。

列出池范围的 I/O 统计信息

如果不使用任何选项,则 zpool iostat 命令会显示自引导以来系统中所有池的累积统计信息。例如:

# zpool iostat
capacity     operations    bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
rpool       6.05G  61.9G      0      0    786    107
tank        31.3G  36.7G      4      1   296K  86.1K
----------  -----  -----  -----  -----  -----  -----

由于这些统计信息是自引导以来累积的,因此,如果池相对空闲,则带宽可能显示为较低。通过指定时间间隔,可以请求查看更准确的当前带宽使用情况。例如:

# zpool iostat tank 2
capacity     operations    bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
tank        18.5G  49.5G      0    187      0  23.3M
tank        18.5G  49.5G      0    464      0  57.7M
tank        18.5G  49.5G      0    457      0  56.6M
tank        18.8G  49.2G      0    435      0  51.3M

在以上示例中,此命令每隔两秒显示一次池 tank 的使用情况统计信息,直到按 Ctrl-C 组合键为止。或者,可以再指定一个 count 参数,该参数可使命令在重复执行指定的次数之后终止。

例如,zpool iostat 2 3 每隔两秒列显一次摘要信息,重复三次,共六秒。如果仅有一个池,则会在连续的行上显示统计信息。如果存在多个池,则用附加虚线分隔每次重复,以提供直观的分隔效果。

列出虚拟设备 I/O 统计信息

除了池范围的 I/O 统计信息外,zpool iostat 命令还可以显示虚拟设备的 I/O 统计信息。此命令可用于识别异常缓慢的设备,或者观察 ZFS 生成的 I/O 的分布情况。要请求完整的虚拟设备布局以及所有 I/O 统计信息,请使用 zpool iostat -v 命令。例如:

# zpool iostat -v
capacity     operations    bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
rpool       6.05G  61.9G      0      0    785    107
mirror      6.05G  61.9G      0      0    785    107
c1t0d0s0        -      -      0      0    578    109
c1t1d0s0        -      -      0      0    595    109
----------  -----  -----  -----  -----  -----  -----
tank        36.5G  31.5G      4      1   295K   146K
mirror      36.5G  31.5G    126     45  8.13M  4.01M
c1t2d0          -      -      0      3   100K   386K
c1t3d0          -      -      0      3   104K   386K
----------  -----  -----  -----  -----  -----  -----

查看虚拟设备的 I/O 统计信息时,必须注意以下两点:

  • 首先,磁盘空间使用情况统计信息仅适用于顶层虚拟设备。在镜像和 RAID-Z 虚拟设备中分配磁盘空间的方法是特定于实现的,不能简单地表示为一个数字。

  • 其次,这些数字可能不会完全按期望的那样累加。具体来说,通过 RAID-Z 设备和通过镜像设备进行的操作不是完全均等的。这种差异在创建池之后即特别明显,因为在创建池的过程中直接对磁盘执行了大量 I/O,但在镜像级别并没有考虑这些 I/O。随着时间推移,这些数值会逐渐变得相等。不过,损坏的、无响应的或脱机设备也会影响这种对称性。

检查虚拟设备统计信息时,可以使用相同的一组选项(时间间隔和计次)。

还可以显示有关池的虚拟设备的物理位置信息。例如:

# zpool iostat -lv
capacity     operations    bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
export      2.39T  2.14T     13     27  42.7K   300K
mirror     490G   438G      2      5  8.53K  60.3K
/dev/chassis/lab10rack15/SCSI_Device__2/disk      -      -      1      0  4.47K  60.3K
/dev/chassis/lab10rack15/SCSI_Device__3/disk      -      -      1      0  4.45K  60.3K
mirror     490G   438G      2      5  8.62K  59.9K
/dev/chassis/lab10rack15/SCSI_Device__4/disk      -      -      1      0  4.52K  59.9K
/dev/chassis/lab10rack15/SCSI_Device__5/disk      -      -      1      0  4.48K  59.9K
mirror     490G   438G      2      5  8.60K  60.2K
/dev/chassis/lab10rack15/SCSI_Device__6/disk      -      -      1      0  4.50K  60.2K
/dev/chassis/lab10rack15/SCSI_Device__7/disk      -      -      1      0  4.49K  60.2K
mirror     490G   438G      2      5  8.47K  60.1K
/dev/chassis/lab10rack15/SCSI_Device__8/disk      -      -      1      0  4.42K  60.1K
/dev/chassis/lab10rack15/SCSI_Device__9/disk      -      -      1      0  4.43K  60.1K
.
.
.