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


8

Recentemente, tive a necessidade de extrair um arquivo grande da Internet de um de 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 talvez 450ms em um dia bom e 750ms em um porcaria.

Originalmente, tentei puxar o arquivo por uma conexão VPN, mas depois de algumas transferências com falha (o smb realmente é péssimo em links lentos) e a velocidade máxima em cerca de 128kBps, um rápido google mostrou que eu estava enfrentando problemas de dimensionamento de janelas TCP do Windows.

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

Adicionado à diversão, é que o acesso à Internet nas duas extremidades é feito através de um proxy http. No entanto, tenho direitos de administrador em máquinas nas duas extremidades.

Como você aumentaria a velocidade?

Coisas que tentei:

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

2) SFTP, mas usando o OpenSSH corrigido com HPN-SSH. Saca-rolhas e configuração intermediária igual a 1). Pouca ou nenhuma melhoria na velocidade.

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

Todas as melhorias são bem-vindas.


Respostas:


4

Hoje em dia, estou abordando transferências através de links de longa distância e latência mais alta, envolvendo o rsync no UDP, usando o UDR como transporte. O UDR usa o UDT , que é descrito como:

O UDT é um protocolo confiável de transporte de dados no nível de aplicativo, baseado em UDP, para aplicativos intensivos em dados distribuídos em redes de alta velocidade de área ampla. O UDT usa o UDP para transferir dados em massa com seus próprios mecanismos de controle de confiabilidade e controle de congestionamento. O novo protocolo pode transferir dados a uma velocidade muito maior do que o TCP. O UDT também é uma estrutura altamente configurável que pode acomodar vários algoritmos de controle de congestionamento.

Isso desabilita a criptografia por padrão, o que era essencial para corrigir o HPN-SSH , mas a abordagem UDP ajudou bastante. O principal benefício da solução UDR / UDP é que a funcionalidade do comando não muda muito. Você acaba anexando o comando rsync udr.

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

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


3

Eu tive o mesmo problema em $ lastjob.

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

Se você puder justificar a despesa, poderá obter dispositivos que acelerem a WAN. Basicamente, eles transformam suas solicitações de maneira transparente em partes muito maiores, reduzindo muito o chattiness entre os dois sites. O Riverbed é provavelmente a opção mais conhecida lá, mas no IIRC também há um módulo para os roteadores Juniper fazerem isso. Não conheço nenhuma opção de software livre no momento.

Na verdade, eu achei a melhor opção o Dropbox et al, mas isso pode não ser aceitável para você.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.