Ao usar o rsync + ssh para acessar uma máquina remota, existe uma maneira de "agradar" o processo rsync na máquina remota (para diminuir sua prioridade)?
Editando a pergunta para esclarecer:
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...
(linha rsync cortada)
Esta é uma tarefa cron de backup que normalmente é executada às 4h da manhã, mas quando estou acordada (e confirmando ou usando o Bugzilla hospedado na mesma máquina), ela mata o desempenho do servidor, então eu queria um "hack" rápido para tentar corrigir um pouco.
--rsync-path="ionice -c 3 nice rsync"
, embora os Linux modernos reduzam automaticamente a prioridade de E / S para processos agradáveis (consulte a página de manual que eu vinculei).nice 0
ionice
, definir a--bwlimit
opção é boa para um melhor rsync.--rsync-path
opção que eu estava especificando.--rsync-path
opção que você temrsync --rsync-path="ionice -c 3 nice -n 12 rsync" localDirectory remoteHost:/tmp/
/etc/default/rsync
oRSYNC_NICE='17'
valor e oRSYNC_IONICE='-c3'
valorPara ambos, o valor de ionice será para prioridade no disco rígido
Observe que, no Linux, apenas o
cfq
planejador realmente implementa classes e prioridades de E / S. Se o administrador do sistema remoto tiver optado pelo agendador de E / Snoop
,deadline
ou alguma variante mais exótica, você poderá descobrir queionice
realmente não faz nada. É necessário obter alto desempenhocfq
e ainda ser capaz de usar classes e prioridades de E / S ajustando o cfq corretamente .por um bom valor para a prioridade do processador
fonte
/etc/default/rsync
? O próprio rsync está lendo este arquivo ou é feito pelo linux-flavor / distribution?/etc/default/rsync
é o arquivo de padrões do modo rsync daemon. Eu acho que só se aplica se você se conectar ao daemon rsync via rsync-protocol. Eu acho que não se aplica se você chamá-lo via ssh.Uma solução rápida e suja seria criar um pequeno script de wrapper chamado 'rsync' que sombreie o $ PATH antes do binário rsync real, como:
Ou configure o arquivo allowed_keys para que ele execute o nicing do rsync. (Supondo que você esteja usando as teclas ssh).
exemplo:
Agora em seu /home/user/bin/nice-rsync.sh
HTH
fonte
Você pode desativar a compactação na rede, não incluindo o
-z
argumento, que pode economizar tempo de CPU em ambos os lados. Ou mude como o rsync usa somas de verificação, veja--checksum
fonte
O Rsync não deve estar usando muita CPU. Duvido que você possa forçar uma certa gentileza do outro lado, mas o que você poderia fazer é limitar a largura de banda que o rsync está usando com um firewall, o que acabaria por reduzir a quantidade de processamento que ele poderia fazer em X por um período de tempo.
fonte
rsync
não requer muita CPU, mas pode aparecer, notop
entanto, dependendo se o kernel atual considera a espera de E / S como ocupada. Além disso, se qualquer outro processo precisar acessar o armazenamento ersync
permitir a execução em ritmo total, todos os outros processos serão lentos como resultado.Eu acho que não, você precisa de uma solução personalizada para isso .. use ftp
fonte