首先,我 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,因此并非完全为令人难以置信的速度而构建。我只是想知道现在的利用率。