Respostas:
O rsync obviamente será mais rápido que o scp se o destino já contiver alguns dos arquivos de origem, pois o rsync apenas copia as diferenças. Mas suspeito que sua pergunta tenha sido sobre fazer uma cópia direta para um alvo vazio.
Você passou a -z
opção para rsync
; isso ativa a compactação. Se a largura de banda da rede é 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 scp
passando a -C
opção Isso deve equilibrar as coisas com o rsync. Por padrão, a compactação não está ativada no ssh porque economiza largura de banda, mas adiciona latência e sobrecarga da 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 do rsync
rsh usado, em vez do ssh, como a camada de transporte padrão, portanto, uma comparação justa seria entre rsync
e rcp
. Mas o ssh é o padrão desde o 2.6.0 lançado em 01-01-2004.
Com configurações de compactação idênticas, eu esperaria rsync
e scp
teria essencialmente a mesma velocidade. Por favor, compartilhe referências se você achar o contrário.
rsync -z
ainda é MUITO MAIS rápido do que scp
com qualquer compactação sugerida nessas respostas ativadas. Também é mais rápido do que compactar e arquivar em um arquivo manualmente e scp
inseri-lo ( scp
a compactação é ainda mais lenta que isso). Portanto, a questão do OP realmente permanece sem resposta: o que é scp
tão lento em comparação com rsync
?
tente scp de maneira rápida
scp -p -C -o 'CompressionLevel 9' -o 'IPQoS throughput' -c arcfour machine:file .
essas opções aceleram o scp 5 vezes em minha configuração, em comparação com o arquivo scp machine: file.
Atualização, 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.
scp -p
(preservar data / hora) como padrão e provavelmente -r
(recursivo) scp -pr -C ...
. (Eu apenas tive que esfregar e reiniciar o trabalho de um 40Gb scp usando estes porque eu esqueci a -p
)
Costumava ser o contrário, mas acredito que a velocidade do rsync melhorou bastante 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 que o scp usa para ver se ela acelera. Por último, lembro que a cifra de arco e quatro foi a mais rápida.
Para meus testes, o rsync é mais rápido que o scp , você pode usar o iotop para testá-los na transferência do mesmo arquivo:
sudo iotop -o
Talvez você obtenha resultados diferentes, mas você mesmo pode testá-los. BTW, enquanto estiver usando scp , não foge para escolher sua cifra:
scp -c arcfour <source> <dest>
Enquanto arcfour
pode acelerar a criptografia.
Você está copiando novamente os arquivos sobre os existentes? Nesse caso, a capacidade do rsync de bloquear a comparação e copiar apenas as diferenças será relevante.