当我运行rsync
涉及复制大文件的备份作业时,运行备份的机器(Mac 台式机和 Linux 服务器)就会停止运行,并且平均负载会急剧上升。
我试过了:
nice
进程rsync
(没用——瓶颈是磁盘)- 在 Linux 上,
renice
ing akjournald
(有帮助,但看起来像是 hack,在 Mac 上不起作用) - 使用
--bwlimit
rsync
标志(有帮助,但这意味着所有的传输都很慢 - 即使它们不需要)
那么,有什么方法可以“ nice
”rsync
的 IO,以便在备份运行时可以使用机器吗?
附言:我知道rsync
在 Mac 上使用的危险……但我曾经使用过备份保镖来验证我的备份,但它们看起来没问题。
答案1
看起来setpriority
Mac OS X 上的 API 应该能够改变 IO 调度(参见http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man2/setpriority.2.html)。我手边没有任何 MacOS,因此无法测试它nice
是否真的改变了 IO 优先级。
在Linux方面,ionice
这就是您所寻找的。
答案2
在 Linux 上你可以使用ionice
http://linux.die.net/man/1/ionice