Solaris
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 通道時,我預計性能可能會更低,但並非完全沒有活動。
iostat -sndzx
提供了一些關於性能為何低的見解(請參閱@Andrew 對我最初問題的評論)。池中的一個磁碟報告的平均服務時間(
asvc_t
列)在 150 毫秒和 4,999 毫秒之間波動,並且繁忙時間百分比為 60(%b
列)。池中的其他驅動器在 3.3ms avsc_t 和 2% 忙。儘管由 生成了上述數字
iostat
,zpool status
但仍將驅動器報告為online
,沒有讀取或寫入錯誤。我沒有看到正在使用的活動的原因
zilstat.sh
是該活動是zfs send
/receive
僅在當時。send
/receive
在接收端使用非同步寫入根本不使用 ZIL。這些塊被直接寫入旋轉磁碟。