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.