[Analise] - Utilitários e Protocolos de transferências de dados qual a performance?

Olá pessoal,

Sou novo aqui na comunidade, estou começando com pé direito aqui!

Nesse meu primeiro tópico quero abordar um assunto que acho interessante, protocolo e utilitários de transferência de dados entre sistemas operacionais “Linux”, nos últimos dois anos obtive oportunidade em trabalhar com hardware de grande porte com interfaces de 10Gps, 40Gps e 100Gps. Com isso apareceu algumas necessidades que nunca imaginei precisar, transferência de dados utilizando a banda larga completa de 10Gps, nesse tópico não abordarei “TCP Slow Start” caso o tópico se estenda posso entrar no assunto.

No primeiro cenário não levaremos em conta alguns throughput como “Memoria, Processador, Storage”, tendo a necessidade de transferência de dados entre duas máquina virtuais ambas sem limites de bandwidth, “LADO-A” 10Gps “LADO-B” 10Gps ambos plugados em um switch L3 10Gps Full-Duplex. Quais desses utilitários ou protocolos sairia com melhor performance, para facilitar iniciaremos um upload do A > B de um único arquivo de 1 Terabyte.

Quais dessas opções teriam melhor performance seja em single-core ou multicore ?

Qual benchmark podemos usar para simular e presenciar os resultados ?

RSYNC é um utilitário amplamente usado para manter cópias de um arquivo em dois sistemas de computadores ao mesmo tempo.

SCP é um meio seguro de transferência de arquivos entre um servidor local e um remoto ou entre dois servidores remotos, usando o protocolo SSH.

FTP é um protocolo padrão/genérico independente de hardware sobre um modo de transferir arquivos/ficheiros e também é um programa de transferência.

SFTP é um protocolo de transferência de arquivos e de manipulação funcional. É tipicamente utilizado com o protocolo de segurança SSH-2.

ARIA2 é um utilitário de download de linha de comando multiprotocolo e multi-fonte leve . Suporta HTTP / HTTPS , FTP , SFTP, BitTorrent e Metalink.

WGET é um programa livre que propicia o download de dados da web. É parte do projeto GNU. Seu nome deriva de World Wide Web e get. Ele suporta os protocolos a HTTP, HTTPS e FTP.

cURL é um projeto de software de computador que fornece uma biblioteca e uma ferramenta de linha de comando para transferir dados usando vários protocolos.

HPN-SSH consiste em um patch que modifica o código fonte do OpenSSH permitindo que os buffers sejam definidos em tempo de execução, eliminando assim o gargalo.

Que os jogos comecem!
Obrigado a todos!

1 Curtida