Por que a transferência de arquivos SFTP do FileZilla é limitada a 1,3 Mb / s em vez de saturar a largura de banda disponível? rsync e WinSCP são ainda mais lentos

4

Estou baixando de um servidor e os downloads estão chegando a 1.3MiB / segundo com o FileZilla, mas posso iniciar downloads simultâneos e eles também baixarão a 1.3MiB / segundo. Então, por que não posso baixar apenas um arquivo com velocidade superior a 1,3MB / se chegar mais perto de saturar a largura de banda disponível (~ 6 + MB / s)?

Eu sei que posso usar algum outro cliente SFTP que suporte downloads segmentados como lftp, conheça outros bons que são de código aberto?

Mas eu ainda quero saber o que é que limita o download de um arquivo para apenas 1,3MB / s, é alguma limitação técnica com TCP e buffers etc ou algum problema de configuração? Eu verifiquei e com certeza não há limitação de tráfego habilitada para o FileZilla.

Também experimentei o rsync e foi pior que o FileZilla / SFTP. Eu também tentei WinSCP e foi o mais lento, independentemente do método SCP / SFTP. Portanto, com 1,3MB / s de transferência constante, o FileZilla é muito bom comparado aos outros métodos de transferência.

Se alguém tiver uma boa explicação do motivo pelo qual as transferências atingem 1,3 MB / s, eu realmente gostaria de saber, e se é possível aumentar isso sem recorrer ao download segmentado. O servidor está executando o OpenSSH 6.7p1 (Debian) O cliente é o FileZilla no Windows.

ATUALIZAÇÃO: Em resposta às informações de Martin (veja sua resposta abaixo) estou adicionando que o ping é de 180ms a 190ms bastante constante entre o servidor e o cliente que está baixando. Também o uso da CPU é muito baixo, 2% a 8% no máximo. Eu tentei com a versão mais recente do winscp 5.73 e com o modo sftp eu tenho 555kb / se cerca de 805kb / s max com o modo scp. Considerando que, se eu iniciar uma transferência concorrente secundária no Filezilla, também recebo 1.3MiB / s constante.

O atraso de 180 ms no servidor poderia ser um fator matematicamente limitante, como Martin e Michael tocaram um pouco? Ou ainda pode haver algo mais para culpar, de modo que eu possa melhorar o rendimento? Se não, eu apreciaria se alguém conhece qualquer outro (como lftp mas corre bem no Windows) open source downloader que é seguro e suporta o download segmentado.

    
por htfree 24.05.2015 / 08:12

2 respostas

10

Existem três fatores comuns que afetam a velocidade de transferência:

  • Largura de banda - Um fator óbvio que aparentemente não é seu problema.

  • Atraso / latência de rede - O SFTP é um protocolo orientado por pacotes. Ao fazer o download, o cliente SFTP envia uma solicitação de "leitura" ao servidor SFTP, aguarda uma resposta, anexa os dados retornados a um arquivo local; e repete, até o final do arquivo.

    Mesmo que sua conexão seja rápida, se o servidor estiver longe (ou lento), leva algum tempo para que os dados cheguem de volta. Se o cliente passar esse tempo esperando inutilmente, sua velocidade de transferência será baixa.

    A maioria dos clientes SFTP (incluindo o FileZilla e o WinSCP) supera o problema solicitando uma grande parte do arquivo em cada solicitação de "leitura" e enviando (enfileirando) várias solicitações de "leitura" sem esperar por uma resposta anterior. Por exemplo, o WinSCP pode solicitar até 32 blocos de 32 KB de uma vez, totalizando 1 MB (estes são padrões). Mas se houver uma grande discrepância entre a largura de banda e o atraso da rede, até mesmo esse 1 MB pode ser muito pequeno para saturar a largura de banda.

    Um protocolo TCP subjacente pode sofrer um problema semelhante. Portanto, não é apenas como o cliente SFTP real é eficiente, mas também como uma camada TCP subjacente é eficiente.

    Veja também Produto de atraso de largura de banda na Wikipedia.

    Eu não acho que este é o seu problema, pelo menos se você tiver usado a versão mais recente do WinSCP para os testes. Houve algumas algumas melhorias nos lançamentos recentes, que permitem ao WinSCP utilizar conexões de alta latência com a mesma eficiência do FileZilla.

  • CPU - O SFTP, sendo criptografado, é intensivo da CPU. Se você tem uma CPU relativamente lenta, comparando com uma grande largura de banda, a transferência pode ser limitada pelo fato de sua CPU não conseguir criptografar (ou descriptografar no caso do download) os dados tão rápido quanto sua rede é capaz de transferi-los. p>

    Clientes SFTP comuns não podem distribuir a criptografia / descriptografia entre os núcleos da CPU, portanto, é na verdade uma capacidade de um único núcleo da CPU que limita a velocidade de transferência.

    Use o Gerenciador de Tarefas do Windows para ver se um dos núcleos é utilizado ao máximo durante a transferência.

por 24.05.2015 / 09:07
2

Eu também tive esse problema.

Eu usei o gerenciador de tarefas para definir a prioridade como alta.

Agora eu recebo até 5 MiB / s

    
por 22.03.2016 / 13:10