Zfs

使用 ZFS zvols 讀取 iostat 使用率

  • April 11, 2018

首先,我 5 天前在 Serverfault 上問過這個問題。我希望我把它帶到 Unix&Linux 堆棧來並沒有做壞事。我還在其他 3 個與 Stack 無關的網站上問過這個問題,但沒有答案。如果我能得到答案,我計劃用答案更新每個站點。開始了。

我很難理解 iostat -x 的輸出,特別是 ZFS zvols。我正在執行 Proxmox 4.4,完全更新並遇到一些普遍較差的 IO 性能。

在對性能緩慢進行故障排除時,我正在查看 iostat -x 1 並看到這種使用率讀數幾乎不斷。

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00   77.00  115.00   308.00   640.00     9.88     2.02   10.33    9.92   10.61   3.58  68.80
sdb               0.00     0.00   81.00  116.00   324.00   644.00     9.83     1.32    6.72    6.42    6.93   2.50  49.20
...
sde               0.00     0.00   77.00  117.00   308.00   640.00     9.77     1.16    6.25    5.25    6.91   2.35  45.60
sdf               0.00     0.00   78.00  116.00   312.00   640.00     9.81     1.25    6.45    5.64    7.00   2.47  48.00
...
zd32              0.00     0.00    0.00  197.00     0.00   788.00     8.00     1.09    5.54    0.00    5.54   5.06  99.60

我感到困惑的是,zd32(我的 VM 的 zvol)的使用率百分比為 100%,而底層儲存的使用率約為 50%。

我的問題是:zvol 使用率不應該反映底層儲存設備的使用率嗎?

作為參考,此系統上還有其他 VM,但此故障排除是在數小時後完成的,因此它們處於空閒狀態。這台虛擬機是唯一一個繁忙的虛擬機,正在執行 Windows 更新。zpool 是 7200RPM SATA 磁碟的 RAID-Z2,因此並非完全為令人難以置信的速度而建構。我只是想知道現在的使用率。

這裡有一些提示。是的,它應該,因為 zfs 卷是在位於儲存設備上的 zpool 上創建的。如果該儲存在其他資源之間共享,它們可能會影響 zfs 池和卷。

不幸的是,我不知道 Proxmox 是什麼,但 %util 通常會顯示設備具有積極事務隊列的時間。隊列中的事務數為 avgqu-sz。這兩個值還取決於可以支持相當大隊列的儲存系統類型和型號。所以,這可能是一個不好的症狀,也可能不是。因此,首先最好查看:await、r/s、w/s、rkB/s、wkB/s 以查看該卷是否存在真正的工作負載和性能問題。

有一個特殊的命令:zpool iostat監控zpool statistic。

引用自:https://unix.stackexchange.com/questions/434949