要请求池或特定虚拟设备的 I/O 统计信息,请使用 zpool iostat 命令。与 iostat 命令类似,此命令也可以显示所有 I/O 活动的静态快照,以及每个指定时间间隔的更新统计信息。报告的统计信息如下:
当前存储在池或设备中的数据量。由于具体的内部实现的原因,此数量与可供实际文件系统使用的磁盘空间量有少量差异。
有关池空间与数据集空间之间的差异的更多信息,请参见ZFS 磁盘空间记帐。
池或设备中的可用磁盘空间量。与 used 统计信息一样,这与可供数据集使用的磁盘空间量也有少量差异。
发送到池或设备的读取 I/O 操作数,包括元数据请求。
发送到池或设备的写入 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 统计信息外,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。随着时间推移,这些数值会逐渐变得相等。不过,损坏的、无响应的或脱机设备也会影响这种对称性。
检查虚拟设备统计信息时,可以使用相同的一组选项(时间间隔和计次)。