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

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

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

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

Mas ainda quero saber o que limita o download de um arquivo a apenas 1,3 MB/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 ativada para o FileZilla.

Também tentei o rsync e foi pior que o FileZilla/SFTP. Também experimentei o WinSCP e foi o mais lento independente do método SCP/SFTP. Portanto, com transferência constante de 1,3 MB/s, o FileZilla é muito bom em comparação com outros métodos de transferência.

Se alguém tiver uma boa explicação de por que as transferências atingem o pico de 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 cliente OpenSSH 6.7p1 (Debian) é FileZilla no Windows.

ATUALIZAÇÃO: Em resposta às informações de Martin (veja sua resposta abaixo), estou acrescentando que o ping é de 180ms a 190ms bastante constante entre o servidor e o cliente que está baixando. Além disso, o uso da CPU é muito baixo, no máximo 2% a 8%. Tentei com a versão mais recente do wincp 5.73 e com o modo sftp obtive 555kb/s e cerca de 805kb/s no máximo com o modo scp. Considerando que, se eu iniciar uma transferência simultânea secundária no Filezilla, também obtenho 1,3 MiB/s constantes.

Então, o atraso de 180 ms no servidor poderia ser um fator matematicamente limitante, já que Martin e Michael falaram um pouco? Ou ainda poderia haver algo mais para culpar, para que eu possa melhorar o rendimento? Caso contrário, agradeceria se alguém conhecesse algum outro downloader de código aberto (como o lftp, mas que funciona bem no Windows) que seja seguro e suporte download segmentado.

Responder1

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

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

  • Atraso/latência de rede– O SFTP é um protocolo orientado a pacotes. Ao fazer o download, o cliente SFTP envia uma solicitação de “leitura” ao servidor SFTP, aguarda uma resposta e 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), demora um pouco para os dados voltarem. Se o cliente passar esse tempo esperando inutilmente, sua velocidade de transferência será baixa.

    A maioria dos clientes SFTP (incluindo FileZilla e WinSCP) superam 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 às anteriores. Por exemplo, o WinSCP pode solicitar até 32 blocos de 32 KB cada de uma vez, totalizando 1 MB (esses são os padrões). Mas se houver uma grande discrepância entre a largura de banda e o atraso da rede, mesmo esse 1 MB pode ser pequeno demais para saturar a largura de banda.

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

    Veja tambémProduto de atraso de largura de bandana Wikipédia.

    Também não creio que este seja o seu problema, pelo menos se você usou a versão mais recente do WinSCP para os testes. Houvealgumas melhoriasnos 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, consome muita CPU. Se você tiver uma CPU relativamente lenta, em comparação com uma largura de banda grande, a transferência pode ser limitada pelo fato de sua CPU não conseguir criptografar (ou descriptografar no caso de download) os dados tão rápido quanto sua rede é capaz de transferi-los.

    Os clientes SFTP comuns não podem distribuir a criptografia/descriptografia entre os núcleos da CPU; portanto, é na verdade a 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.


Parte desta resposta vem do artigo WinSCPA velocidade de transferência de arquivos é muito baixa. WinSCP não utiliza toda a largura de banda disponível. Como posso melhorar a velocidade de transferência?

Responder2

Eu também tive esse problema.

Usei o gerenciador de tarefas para definir a prioridade como alta.

Agora consigo até 5 MiB/s

Responder3

Recentemente, tentei exatamente a mesma rede com o Windows 10 e talvez uma versão mais recente do filezilla e consegui transferências de até 7 MB/segundo do mesmo servidor! Em seguida, testei com RSYNC dentro de uma máquina virtual e também obtive 7 MB/segundo. Tenho "quase certeza" agora que o problema está no firewall COMODO que instalei neste sistema Windows 7.

Aparentemente, mesmo que você o "desative", tudo o que ele faz não é impor regras, mas retarda a pilha da rede. Também instalei/repliquei este sistema windows 7 dentro de uma máquina virtual e tentarei "remover" completamente o Comodo cis premium (antivírus + firewall) e confirmar aqui. Devo também mencionar nesta máquina que também notei pings erráticos de latência intermitente em alguns sistemas em minha rede, onde todos os outros sistemas entre eles eram estáveis ​​<1ms. Portanto, as informações do produto com atraso de largura de banda são muito boas, mas no meu caso consegui obter o filezilla e o rsync a 7 MB/s (o que basicamente satura minha largura de banda disponível) em outra instalação, na mesma rede local e remota.

informação relacionada