Transferência Rsync de várias linhas

4

Por algum motivo, ao executar um único comando rsync, estou obtendo 1 MB / s para 2 MB / s, mesmo quando conecto 2 servidores conectados a portas de 1 Gbps.

rsync -v --progress -e ssh /backup/mysqldata/mysql-bin.000199 [email protected]:/secondary/mysqldata/mysqldata/mysql-bin.000199

Eu tenho mais de 800 GB de dados para dividir entre 500 ou mais arquivos, começando com:

mysql-bin.000 *

Descobri que a execução de 25-30 rsync simultaneamente a partir de janelas SSH separadas me eleva para mais de 25 MB / s, mas levarei horas para executá-las manualmente.

Existe alguma maneira de obter os 25 MB / s de um único comando rsync?

    
por reefine 04.10.2012 / 09:42

2 respostas

3

O OpenSSH é conhecido por ter limites de tamanho de janela que não são muito amigáveis para conexões de alta latência. Para determinar o tamanho mínimo da janela para o seu rendimento desejado (vamos ignorar outra sobrecarga por enquanto):

Window size = throughput * latency

Portanto, se você quiser 25MB / s (200.000.000 bits / s) em uma latência de 25 ms (0,025 segundos):

Window size = 200,000,000 * 0.025 = 5000000.0 bits

Dividido por 8, é aproximadamente uma janela de 625 KB. Vamos dar uma olhada e olhar para uma janela de 64 KB (o limite interno de muitas versões do OpenSSH) na sua latência:

throughput = 512000 bits / 0.025s latency = 20480000.0 bits/sec = ~2.5MB/sec

Isso é muito parecido com o que você está vendo (você pode ter outra sobrecarga também).

Então, gostaria de verificar na seguinte ordem:

por 04.10.2012 / 12:23
0

O desempenho do SSH pode variar drasticamente, dependendo de a compactação estar ativada.

    
por 04.10.2012 / 11:26

Tags