远程机器上的 rsync 不错

mwa*_*ing 28 ssh rsync

当使用 rsync+ssh 访问远程机器时,有没有办法“优化”远程机器上的 rsync 进程(降低其优先级)?

编辑问题以澄清:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
backups  16651 86.2  0.1   3576  1636 ?        Rs   11:06   0:06 rsync --ser...
Run Code Online (Sandbox Code Playgroud)

(rsync 行被剪断)

这是一个备份 cron 作业,通常在凌晨 4 点运行,但是当我碰巧醒着(并提交,或使用托管在同一台机器上的 Bugzilla)时,它会降低服务器性能,所以我想要一个快速的“黑客”来尝试修复它有点。

Has*_*kun 36

您可以使用该--rsync-path选项,例如。

rsync --rsync-path="nice rsync" foo remotebox:/tmp/
Run Code Online (Sandbox Code Playgroud)

  • 您也可以考虑使用 [ionice](http://manpages.ubuntu.com/manpages/en/man1/ionice.1.html),例如`--rsync-path="ionice -c 3 nice rsync"` ,尽管现代 Linux 会自动降低好的进程的 IO 优先级(请参阅我链接的手册页)。 (19认同)
  • 我也遇到了这个选项没有任何区别的问题。结果证明我连接的服务器在authorized_keys中配置为只接受一个特定的rsync命令,它覆盖了我指定的```--rsync-path```选项。 (2认同)

Phi*_*oud 9

  • --rsync-path选择您拥有的选项rsync --rsync-path="ionice -c 3 nice -n 12 rsync" localDirectory remoteHost:/tmp/
  • 使用配置文件选项,您可以更改或取消注释文件中/etc/default/rsyncRSYNC_NICE='17'值和RSYNC_IONICE='-c3'

对于两者,ionice值都将用于硬盘优先级

  • 1 -> 实时
  • 2 -> 尽力而为
  • 3 -> 空闲(当任何其他进程不使用 HD 时)

请注意,对于 Linux,只有cfq调度程序真正实现了 IO 类和优先级。如果远程系统管理员选择了 IO scheduler noopdeadline或者一些更奇特的变体,你可能会发现它ionice真的什么都不做。应该能够cfq通过正确调整 cfq来获得高性能,并且仍然能够使用 IO 类和优先级。

对于漂亮的处理器优先值

  • -20(对工艺最有利)
  • (默认 10)如果未指定 -n
  • 19(对工艺最不利)