我有一个 Xen Dom0 (3.2),带有一堆 domU(paravirt)。DomU VBD 位于本地 LVM 卷上。现在我想使用快照获取 LVM 卷的备份。我使用 rsync ioniced 来空闲(ionice -c3)。
我已经验证 rsync 进程确实处于空闲模式,并且blkback
内核线程处于最佳努力状态 (-c2 -n4)。
据我了解,IO 调度系统,如此配置的 rsync 进程永远不应该从进程中窃取 IO 带宽blkback
,因此对 domU 的影响应该为零。
但这不是我看到的。在 domUs 中,vmstat
rsync 文件列表操作期间显示高达 20% 的 IO 等待,rsync 传输数据时显示约 10% 的 IO 等待:
r b swpd free buff cache si so bi bo in cs us sy id wa
1 3 456 48468 103004 1550936 0 0 75 484 2112 1741 3 0 81 16
如果不运行 rsync,IO 等待时间约为 1%:
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 456 43876 105564 1553224 0 0 19 365 2063 1718 4 0 95 1
dom0 显示 rsync 文件列表操作的 IO 等待时间稳定为 11%,数据传输的 IO 等待时间稳定为 5%:
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 23536 220220 73256 558856 0 0 1471 239 5271 310 0 0 89 11
那么,有人知道这里发生了什么吗? ionice 只是坏了还是我期望的结果不对?
谢谢任何提示。
蒂姆
答案1
您正在使用什么发行版?
您正在使用什么文件系统?
您正在使用哪种 I/O 调度程序(CFQ、截止期限、预期、noop)?
在繁重的文件操作期间,0% I/O 等待是不合理的。无论如何,旋转磁盘都会有一些 I/O 等待。一些文件系统会稍微减少这种影响,有时调整或更改 I/O 调度程序会有所帮助,有时您只需要忍受一点点 I/O 等待。大约 10-20% 并不算多,除非您注意到服务器速度急剧下降。如果速度急剧下降,您可能会通过 等工具了解发生了什么,btrace
这些工具会显示单个 I/O 请求、它们的状态以及整体 I/O 调度程序/块设备统计信息。