为了避免rsync饿死系统和网络,我们在启动rsync时使用ionice并设置–bwlimit参数.例如:
ionice -c2 -n7 rsync -aH --bwlimit=30000 /foo root@dest.com:/
这确实有助于确保源服务器保持响应.但是,由于磁盘io为100%,目标服务器变得非常慢(如atop实用程序所示).
是否有可能以某种方式在目标服务器上使用ionice?也许通过rsync -e选项?如果可能的话,我宁愿不运行rsync守护进程.
解决方法
更改rsync命令或将其包装在shell脚本中以包含ionice命令/参数是一个选项.此外,您可以利用–rsync-path选项,该选项告诉rsync在远程服务器上执行哪个命令.像–rsync-path =“ionice -c2 -n7 rsync”之类的东西将确保ionice在目的地上运行.
我将补充说,根据服务器配置,ionice并不总是有效.它仅适用于default CFQ I/O elevator.如果您已完成任何存储系统调整,则此方法可能不适用.
您能举例说明负载或帮助解释在复制期间系统如何启动资源?我倾向于深入研究,看看为什么rsync,特别是限于你在你的例子中列出的低速率,会导致这么多麻烦.
你在复制什么?什么是硬件/操作系统设置?