Melhorando a velocidade de transferência de arquivos grandes através de um link de alta latência

8

Então, recentemente tive a necessidade de puxar um grande arquivo pela Internet de um dos nossos escritórios no exterior. Ambos os escritórios têm links de fibra de 50Mbit em ambas as direções, mas o tempo de ida e volta é horrível e varia de 450ms em um dia bom e 750ms em uma porcaria.

Originalmente, tentei puxar o arquivo através de uma conexão VPN, mas depois de algumas transferências com falha (smb realmente suga links lentos) e velocidade máxima em cerca de 128kBps um google rápido mostrou que eu estava correndo contra janelas problemas de dimensionamento de janela TCP .

Desde então, enviei o arquivo por meio de um serviço de tipo de nuvem privada comercial que colocou o arquivo aqui mais rápido, portanto, o que se segue é mais por curiosidade do que por qualquer outra coisa.

Adicionado à diversão, é que o acesso à internet em ambas as extremidades é através de um proxy http. No entanto, tenho direitos de administrador nas máquinas nos dois lados.

Como você iria conseguir uma velocidade melhor?

Coisas que eu tentei:

1) SFTP simples entre duas máquinas virtuais linux, usando saca-rolhas para perfurar o proxy http e um terceiro intermediário para conectar as duas extremidades. Velocidade atingida: cerca de 600kBps.

2) SFTP mas usando OpenSSH corrigido com HPN-SSH. Saca-rolhas e intermediário config mesmo como 1). Pouco ou nenhum aumento de velocidade.

3) Como por 2, mas usando LFTP com pget -c -n 10 para dividir a transferência em pedaços. Este é o melhor até agora, vendo 3.5MBps ...

Todas as melhorias são bem-vindas.

    
por Ingo 29.10.2014 / 21:41

2 respostas

4

Hoje em dia, estou lidando com transferências por links de longa distância e maior latência colocando o rsync em UDP, usando UDR como um transporte. O UDR usa o UDT , que é descrito como:

UDT is a reliable UDP based application level data transport protocol for distributed data intensive applications over wide area high-speed networks. UDT uses UDP to transfer bulk data with its own reliability control and congestion control mechanisms. The new protocol can transfer data at a much higher speed than TCP does. UDT is also a highly configurable framework that can accommodate various congestion control algorithms.

Isso desabilita a criptografia por padrão, o que era uma coisa importante que eu precisava quando eu estava corrigindo HPN-SSH , mas a abordagem UDP ajudou bastante. O principal benefício da solução UDR / UDP é que a funcionalidade de comando não muda muito. Você acaba de preceder o comando rsync com udr .

udr rsync -avP --stats --delete --inplace /data/ mir1:/data/

Veja também: Possibilidade de otimização de WAN para tráfego SSH

    
por 30.10.2014 / 11:36
3

Eu tive o mesmo problema em $ lastjob.

Permanecendo puramente dentro da minha própria infraestrutura, nunca encontrei uma solução melhor do que o LFTP.

Se você puder justificar a despesa, poderá obter appliances que fazem a aceleração da WAN. Basicamente, eles transformam seus pedidos em pedaços muito maiores, reduzindo, assim, muito o caos entre os dois sites. A Riverbed é provavelmente a opção mais conhecida, mas o IIRC também é um módulo para os roteadores da Juniper. Eu não sei de nenhuma opção FLOSS no momento.

Eu realmente achei que a melhor opção era Dropbox et al, mas isso pode não ser aceitável para você.

    
por 30.10.2014 / 11:02