scp user@aws-ec2:~/file file
rsync --partial --progress -Pav -e ssh user@aws-ec2:~/file file
scp
só me dá 200K / s, mas rsync
me dá 1,9M / s
Eu testei várias vezes, todos os mesmos resultados.
rsync
usa vários threads ??
Ambos os protocolos são baseados no SSH. E o próprio SSH tem alguma sobrecarga :
O SCP é um protocolo realmente ingênuo, com algoritmo realmente ingênuo para transferir alguns arquivos pequenos. Possui muita sincronização (RTT - Round Trip Time) e buffers pequenos (basicamente 2048 fontes B ).
O Rsync é feito para desempenho e, portanto, oferece resultados muito melhores e possui mais recursos.
A aceleração de 10x é específica para o seu caso. Se você transferisse arquivos para todo o mundo por vias de alta latência, obteria um desempenho muito pior no scp
caso, mas na rede local, o desempenho pode ser quase o mesmo.
E não, a compactação ( -C
para scp
) não ajudará. Os maiores problemas são a latência e o tamanho do buffer.
O SCP basicamente faz uma cópia antiga simples da origem para o destino localmente ou através de uma rede usando SSH, mas você pode usar o -C
comutador para permitir que a compactação SSH potencialmente acelere a cópia de dados na rede.
O RSYNC transfere apenas as diferenças entre dois conjuntos de arquivos na conexão de rede, usando um algoritmo eficiente de pesquisa de soma de verificação que otimiza automaticamente a conexão de rede durante uma transferência de dados.
RSYNC
DESCRIÇÃO
rsync is a program that behaves in much the same way that rcp does, but has many more options and uses the rsync remote-update protocol to greatly speed up file transfers when the destination file is being updated. The rsync remote-update protocol allows rsync to transfer just the dif- ferences between two sets of files across the network connection, using an efficient checksum-search algorithm described in the technical report that accompanies this package.
SCP
DESCRIÇÃO
scp copies files between hosts on a network. It uses ssh(1) for data transfer, and uses the same authentication and provides the same secu‐ rity as ssh(1). scp will ask for passwords or passphrases if they are needed for authentication. File names may contain a user and host specification to indicate that the file is to be copied to/from that host. Local file names can be made explicit using absolute or relative pathnames to avoid scp treat‐ ing file names containing ‘:’ as host specifiers. Copies between two remote hosts are also permitted.
-C
switch não ' comprimir dados durante a transmissão dos mesmos pelo cano?rsync
linha de comando. Obviamente, o algoritmo delta no arquivo está sempre ativo. Provavelmente é apenas umascp
porcaria.