当我运行涉及复制大文件的rsync备份作业时,运行备份的计算机(Mac桌面和
Linux服务器)都会停止运行并且负载平均值会达到顶峰.
我试过了:
>改善rsync进程(没有帮助 – 瓶颈是磁盘)
>在Linux上,重新编写kjournald(有帮助,但看起来像是黑客攻击,但在Mac上不起作用)
>使用–bwlimit rsync标志(有帮助,但这意味着所有传输都很慢 – 即使它们不需要)
那么,有什么方法可以“漂亮”rsync的IO,这样机器在备份运行时是可用的吗?
PS:我知道在Mac上有rsync的危险……但我已经使用BackupBouncer来验证我的备份,但它们似乎没问题.
解决方法
看起来Mac OS X上的setpriority API应该能够改变IO调度(参见
http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man2/setpriority.2.html).我没有任何MacOS方便,所以我无法测试好,实际上改变了IO优先级.
在Linux方面,ionice是你正在寻找的.