当使用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...
(rsync行被剪切)
这是一个通常在凌晨4点运行的备份cron作业,但是当我碰巧醒来(并提交,或者使用同一台机器上的Bugzilla)时,它会导致服务器性能下降,所以我想快速“破解”来尝试修复这一点。
你可以使用--rsync-path
选项,例如。
rsync --rsync-path="nice rsync" foo remotebox:/tmp/
rsync --rsync-path="ionice -c 3 nice -n 12 rsync" localDirectory remoteHost:/tmp/
/etc/default/rsync
更改或取消注释RSYNC_NICE='17'
值和RSYNC_IONICE='-c3'
值 对于这两个ionice值将为硬盘优先
对于处理器优先级的好处
快速和肮脏的解决scheme是创build一个名为“rsync”的小包装脚本,在实际的rsync二进制文件之前将$ PATH遮蔽,如下所示:
#!/bin/sh nice -10 /path/to/proper/rsync $*
或者设置authorized_keys文件,以便它执行rsync的nicing。 (假设您使用ssh密钥)。
例:
command=”/home/user/bin/nice-rsync.sh" ssh-dss asdf....
现在在/home/user/bin/nice-rsync.sh中
#!/bin/sh case $SSH_ORIGINAL_COMMAND in rsync\ --server*) nice -10 $SSH_ORIGINAL_COMMAND ;; *) $SSH_ORIGINAL_COMMAND ;; esac
HTH
您可以通过不包含-z
参数来禁用沿networking的压缩,这可能会节省一些CPU时间。 或者改变rsync如何使用校验和,看看--checksum
Rsync不应该使用太多的CPU。 我怀疑你可以从另一端强制一定的好处,但你可以做的是限制rsync与防火墙使用的带宽,这将最终减less在X时间内可以做多less处理。
我不这么认为,你需要一个自定义的解决scheme..使用FTP