Atualmente, estou usando rsync
para copiar um arquivo de 73 GB de um SSD portátil T7 da Samsung para um cluster HPC.
rsync -avh path/to/dataset [email protected]:/path/to/dest
Aplica-se o seguinte:
- Minha máquina local (onde meu T7 está conectado) é uma VM VirtualBox executando o Ubuntu 20.
- As velocidades de transferência T7 devem ser de até aprox. 1000 MB/s.
- A rede me dá uma velocidade de upload aproximada de 7,9 Mbps.
- A velocidade de transferência do Rsync provavelmente está limitando isso para 1-5 MB/s de acordo com esta resposta .
O problema é que o movimento ainda não é feito após 9 horas. De acordo com 1 , usar cp
em vez disso é melhor com um diretório vazio (pela primeira vez). Eu não entendo isso ou se é realmente verdade. Alguém pode explicar isso?
Você diz que,
rsync
é executado em cerca de 1-5 MB/s.Dado que 1 MB/s é aproximadamente 10 Mb/s, eu diria que isso
rsync
está lhe fazendo um grande favor.Eu provavelmente teria adicionado compactação com
-z
, e como você está usandorsync
com sinalizadores sensatos em uma conexão de rede, provavelmente está interrompendo e reiniciando com compactação. Ele só vai continuar de onde parou.Cálculo rápido: 73 GB são 73.000 MB * , que são 730.000 Mb ‡ . Aproximadamente. Você tem uma velocidade de rede de 8 Mb/s, o que significa que a cópia deve levar cerca de 730.000/8 = 91.250 segundos. 25 horas, considerando o uso máximo teórico da largura de banda da rede.
* Por que 1000:1 em vez de 1024:1? Em parte porque GB:MB é estritamente 1000:1, mas principalmente porque este é um cálculo aproximado
‡ Por que 10:1 em vez de 8:1 como sugerido por 8 bits para 1 byte? Duas razões: (a) é uma aproximação O(n), e (b) há sobrecarga de pacote/protocolo a ser considerada.
Agora, para tentar responder à pergunta estritamente como solicitado, que é: " O cp é mais rápido que o rsync durante a primeira execução? ". Se estiver usando
cp
precisa ter algo gerenciando o transporte entre os servidores local e remoto; isso pode ser algo comosshfs
NFS ou, alternativamente, você pode significarscp
.cp
em um sistema de arquivos montado em NFS. Com uma rede bem ajustada, isso provavelmente é bastante eficiente.cp
acabousshfs
. Isso incluirá não apenas sobrecargas de criptografia,ssh
mas também a tradução entre o kernel e o espaço do usuário para a implementação do FUSE do sistema de arquivos. Ineficiente.scp
(implicitamente sobressh
). Isso incluirá sobrecarga de criptografia dossh
. Aceitável e pode se beneficiar ainda mais da compactação de link (-C
).rsync
(implicitamente encerradossh
, pois não mencionamosrsyncd
). Isso incluirá sobrecarga de criptografia dossh
. Aceitável e pode se beneficiar ainda mais da compactação de protocolo (-z
).Não usei métricas quantitativas de desempenho; são avaliações qualitativas. No entanto, observe os comentários em uma resposta semelhante Por que o scp é tão lento e como torná-lo mais rápido? , embora, para ser justo, esteja discutindo taxas de transferência comparativas de vários arquivos em vez de um grande.
No entanto, onde
rsync
ganha em uma conexão de rede é que é reiniciável. Com as bandeiras certas (ou seja--partial
, ) mesmo no meio de uma transferência. Para um único arquivo de 73 GB que leva cerca de 25 horas para ser transferido, essa é uma enorme vantagem potencial.