Por que o rsync -avz é mais rápido que o scp -r?

50

Estou um pouco confuso com isso? Por que o rsync é mais rápido que o scp? O rsync não usa o scp abaixo ou faz algo mais eficiente? Existe alguma maneira de acelerar o scp?

    
por grm 29.09.2010 / 11:42

6 respostas

65

O rsync obviamente será mais rápido que o scp se o destino já contiver alguns dos arquivos de origem, já que o rsync somente copia as diferenças. Mas suspeito que sua pergunta tenha sido sobre fazer uma cópia direta para um alvo vazio.

Você passou a opção -z para rsync ; isso liga a compressão. Se a largura de banda da rede for o fator limitante (geralmente é), a compactação pode melhorar a velocidade de transferência em uma quantidade notável.

Você também pode ativar a compactação com scp passando a opção -C . Isso deve se equiparar ao rsync. A compactação não é ativada por padrão no ssh porque economiza largura de banda, mas adiciona latência e sobrecarga de CPU; a latência é ruim para sessões interativas (isso não se aplica a scp ), e a sobrecarga da CPU é inútil se os arquivos que você está copiando já estiverem compactados.

As versões mais antigas de rsync usavam rsh em vez de ssh como a camada de transporte padrão, portanto, uma comparação justa seria entre rsync e rcp . Mas o ssh tem sido o padrão desde o lançamento da versão 2.6.0 em 2004-01-01.

Com configurações de compactação idênticas, esperaria que rsync e scp tivessem essencialmente a mesma velocidade. Por favor, compartilhe benchmarks se você encontrar o contrário.

    
por 29.09.2010 / 22:02
10

tente o scp de maneira rápida

scp -p -C -o 'CompressionLevel 9' -o 'IPQoS throughput'  -c arcfour machine:file .

essas opções aceleram scp 5 vezes na minha configuração em comparação com a máquina simples scp: file.

Atualização de 2017

Na verdade, o scp é lento devido ao gerenciamento inadequado dos detalhes do TCP, como MTU e tamanho do buffer. Felizmente isso foi corrigido pelo projeto HPN SSH . No meu entender, você pode usar o HPN SSH como um transporte para o rsync.

    
por 24.07.2014 / 16:28
3

Costumava ser o contrário, mas acredito que a velocidade do rsync melhorou muito nas últimas revisões. Também depende de quantos arquivos você está copiando. Se for muito, o rsync geralmente será mais rápido porque o scp gera um novo processo para cada arquivo que você está copiando. Você pode tentar enfraquecer a cifra scp usa para ver se acelera. Por último, lembro que a cifra arcfour foi a mais rápida.

    
por 29.09.2010 / 13:36
3

Para um grande número de arquivos pequenos, o rysnc é muito mais rápido que o scp. Eles dizem que é porque tem menor sobrecarga. Para um arquivo grande, esperaria resultados semelhantes.

    
por 17.12.2012 / 21:06
3

Para meus testes, rsync é mais rápido que scp , você pode usar iotop para testá-los ao transferir o mesmo arquivo:

sudo iotop -o

Talvez você tenha resultados diferentes, mas pode testá-los por conta própria. BTW, enquanto estiver usando scp , não foget para escolher sua cifra por:

scp -c arcfour <source> <dest>

Embora arcfour possa acelerar a criptografia.

    
por 05.04.2013 / 06:21
0

Você está copiando novamente os arquivos existentes? Em caso afirmativo, a capacidade do rsync de comparar os blocos e copiar apenas as diferenças será relevante.

    
por 29.09.2010 / 13:45

Tags