rsync ionice目的地


14

为避免rsync使系统和网络饿死,我们ionice在启动rsync并设置--bwlimit参数时使用。例如:

ionice -c2 -n7 rsync -aH --bwlimit=30000 /foo root@dest.com:/

这确实有助于确保源服务器保持响应。但是,由于磁盘io为100%(如atop实用程序所见),目标服务器变得非常慢。

是否可以以某种方式ionice在目标服务器上使用?也许通过rsync -e选项?如果可能,我宁愿不要运行rsync守护程序。

Answers:


11

可以选择更改rsync命令或将其包装在shell脚本中以包含ionice命令/参数。另外,您可以利用该--rsync-path选项,该选项告诉rsync在远程服务器上执行哪个命令。这样--rsync-path="ionice -c2 -n7 rsync"可以确保ionice在目标上运行。

我还要补充说,ionice并不总是有效的,具体取决于服务器的配置。它仅适用于默认的CFQ I / O升降机。如果您已完成任何存储系统调整,则此方法可能不适用。

您能否举一个负载示例或帮助解释在复制过程中系统如何开始使用资源?我倾向于更深入地研究,看看为什么rsync(特别是限于示例中列出的低速率)会造成如此大的麻烦。

您要复制什么?什么是硬件/操作系统设置?


我们有几个OpenVZ主机。这些是运行CentOS的16核Xeon机器。每天晚上,我们将所有OpenVZ容器复制到另一个主机。由于我们的IP地址可路由到所有主机,因此在主机发生故障的情况下,我们可以快速激活备用VPS。
杰森·史密斯

负载有多高?这些是本地到本地副本吗?存储I / O升降机是否进行了任何更改?
ewwhite 2012年

据我所知,限制网络带宽不会限制磁盘io(即使没有文件更改,也需要扫描成千上万个目录)。--bwlimit还应该限制磁盘I / O吗?
杰森·史密斯

根据atop磁盘io不断爆破至100%。我不确定“存储I / O升降机”是什么意思,所以我可能会运行默认值?
杰森·史密斯

2

您的rsync命令rsync也会在远程目标上启动命令。

尝试将以下内容放置到目标服务器的根用户.bashrc中,换句话说, /root/.bashrc

alias rsync="ionice -c2 -n7 rsync"

A ~/.bashrc仅用于交互式会话,我不希望在其中设置别名会修改rsync的执行方式。
HBruijn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.