destino do rsync ionice

14

Para evitar que o rsync passe fome no sistema e na rede que usamos ioniceao iniciar o rsync e defina o --bwlimitparâmetro Por exemplo:

ionice -c2 -n7 rsync -aH --bwlimit=30000 /foo [email protected]:/

Isso realmente ajuda a garantir que o servidor de origem permaneça responsivo. No entanto, o servidor de destino fica muito lento devido ao disco io em 100% (como visto pelo atoputilitário).

É possível usar de alguma forma também ioniceno servidor de destino? Talvez através da -eopção rsync ? Prefiro não executar o daemon rsync, se possível.

Jason Smith
fonte

Respostas:

11

Alterar o comando rsync ou envolvê-lo em um script shell para incluir o comando / parâmetros ionice é uma opção. Além disso, você pode aproveitar a --rsync-pathopção, que diz ao rsync qual comando executar no servidor remoto. Algo como --rsync-path="ionice -c2 -n7 rsync"garantirá que o ionice seja executado no destino.

Acrescentarei que o ionice nem sempre é eficaz, dependendo da configuração do servidor. Funciona apenas com o elevador de E / S CFQ padrão . Se você fez algum ajuste no sistema de armazenamento, essa abordagem pode não ser aplicável.

Você pode dar um exemplo da carga ou ajudar a explicar como os sistemas foram iniciados para obter recursos durante a cópia? Eu tenderia a me aprofundar mais e ver por que um rsync, especialmente limitado à baixa taxa que você listou no seu exemplo, causaria tantos problemas.

O que você está copiando? Qual é a configuração de hardware / sistema operacional?

ewwhite
fonte
Temos vários hosts OpenVZ. São máquinas Xeon de 16 núcleos executando o CentOS. Todas as noites, copiamos todos os contêineres do OpenVZ para outros hosts. Como nossos endereços IP são roteáveis ​​para todos os hosts, isso permite ativar rapidamente um VPS de backup no caso de um host falhar.
Jason Smith
Quão alta a carga fica? Essas cópias são de local para local? Foram feitas alterações nos elevadores de E / S de armazenamento?
ewwhite
Pelo que vi, limitar a largura de banda da rede não limita o disco io (milhares de diretórios precisam ser verificados, mesmo que nenhum arquivo tenha sido alterado). O --bwlimit também deve limitar a E / S do disco?
Jason Smith
De acordo com atopo disco, o io está constantemente subindo para 100%. Não sei o que você quer dizer com "elevadores de E / S de armazenamento", então provavelmente executo os padrões?
Jason Smith
2

Seu comando rsync também lança o rsynccomando no destino remoto.

Tente colocar o seguinte no usuário raiz do servidor de destino .bashrc, em outras palavras, para /root/.bashrc

alias rsync="ionice -c2 -n7 rsync"
Janne Pikkarainen
fonte
A ~/.bashrcé fornecido apenas para sessões interativas e não espero que a configuração de um alias altere a maneira como o rsync é executado.
HBruijn