ZFS 池性能,zio_write_issue

ZFS 池性能,zio_write_issue

我们有一个相对较大的 ZFS 池(raidz3 中有 23 个 vdev,~1PB 原始)。头节点有 16 个核心和 192GB RAM。我们池中有一个 ZIL,但没有 L2ARC。池运行的是Solaris 11.3

该池可以以恒定的 1GB/s 吞吐量、20kIOPs(峰值 >100kIOPs)运行,但性能会在几天内下降:

  • IOP 下降 ( zpool iostat)
  • 吞吐量下降
  • 有 zio_read_intr、zio_write_issue、zio_write_issue_high 的负载prstat -amL

尝试查看zilstat.sh没有显示任何活动,这很奇怪:我不确定为什么我可以在 zpool status 命令中看到附加到池的日志设备,但我看不到zilstat.sh.

此外,我们还有该系统的近乎精确的复制品,其性能完美无缺,ZIL 的行为也符合其应有的性能。唯一的区别是 ZIL 是通过不同的 SAS 连接器访问的。当 ZIL 使用与其他 vdev 相同的 SAS 通道时,我预计性能可能会较低,但并非完全没有活动。

答案1

iostat -sndzx提供了一些关于性能低下原因的见解(请参阅@Andrew 对我原来问题的评论)。

池中的一个磁盘报告平均服务时间(asvc_t列)在 150 毫秒到 4,999 毫秒之间波动,繁忙时间百分比为 60(%b列)。池中的其他驱动器的 avsc_t 时间为 3.3 毫秒,繁忙率为 2%。

尽管生成了上述数据iostat,但zpool status仍将驱动器报告为online,没有读取或写入错误。

我没有看到活动使用的原因zilstat.sh是该活动zfs send/receive仅在当时。send/receive在接收端使用异步写入根本没有使用 ZIL。这些块被直接写入旋转磁盘。

答案2

如果您没有看到 中的任何性能zilstat.sh,我会冒昧地质疑是否有人意外添加了旨在成为齐尔作为池中其他 23 个 vdev 的另一个 vdev。

您能否提供zpool status输出来确认池的当前配置?如果有人在创建池时错过添加“日志”,您的齐尔没有按照您的预期行事。

相关内容