Limitar cópia nfs da largura de banda rsync

2

No momento, somos obrigados a limitar a largura de banda de backup a um disco nfs fora de nossa rede (através de VPN) porque ele preenche o cache do modem e somos forçados a reinicializá-lo para recuperar a conectividade.

0 22 * * *   flock rsync_wan_lock -c "rsync --rsync-path=\"nice -n5 ionice -c2 -n3 rsync\" --bwlimit 2000 -avrPq --delete-after /var/data/ /mnt/somedrive"

Mas isso não é suficiente. Mesmo pensando 2000 KiB deveria ser 50% da velocidade de transferência (temos 30Mbps), ainda preenche o buffer.

Então, eu li essas explosões de rsync e depois fiquei em silêncio para honrar o bwlimit e que os metadados ainda não honram o bwlimit. Então estou tentando trickle agora.

O problema é que todo documento que eu encontrei usa trickle nas conexões ssh através da opção -e . Eu não acho que -e funcionará se eu não estiver copiando através de ssh , mas eles dão a razão que colocar o fluxo no --rsync-path não funcionará devido ao bifurcação que o rsync faz.

0 22 * * *   flock rsync_wan_lock -c "rsync --rsync-path=\"nice -n5 ionice -c2 -n3 trickle -s -u 1000 -d 10000 rsync\" -avrPq --delete-after /var/data/ /mnt/somedrive"

Alguma ideia / comentário? E o que está acontecendo com esse modem, desde quando é tão fácil transbordar um modem? O firewall anterior foi limitado a 10000 e não se deparou com problemas de cache.

    
por quimnuss 21.11.2017 / 12:44

2 respostas

0

No que diz respeito ao nível de usuário rsync , não há rede entre o diretório de origem /var/data e o destino /mnt/somedrive (a transferência de rede para o servidor NFS acontece nos bastidores). Portanto, trickle não pode funcionar neste caso de uso. Por outro lado, o qualificador --bwlimit funciona nas transferências locais.

A opção ionice deve ajudar, mas como a opção --rsync-path é ignorada nas transferências locais, não adianta tentar aplicá-la lá.

Veja como isso funciona para você

nice -n5 ionice -c2 -n3 rsync --bwlimit 2000K -avP --delete-after /var/data/ /mnt/somedrive

Note que seu --bwlimit 2000K é na verdade 20Mb / s, o que é consideravelmente mais do que 50% da sua largura de banda máxima.

    
por 21.11.2017 / 16:49
0

Você pode tentar wondershaper , a partir de um pacote com o mesmo nome, que é um script simples para definir limites globais de largura de banda de entrada e saída o comando tc de modelagem de tráfego do kernel.

    
por 21.11.2017 / 16:13