vsftpd rápido para arquivos binários, lento para arquivos de texto

3

Estou executando o vsftpd 2.2.1 em uma máquina Ubuntu 8.04 com uma configuração bastante direta e estou tendo um problema estranho em relação a uploads para a máquina via FTP. Se eu fizer upload de arquivos de texto, a velocidade de transferência será de aproximadamente 70 KB / s, se eu fizer o upload de dados binários (arquivo zip, etc.), a velocidade de transferência será cerca de 50 vezes mais rápida. Eu usei vários clientes diferentes em diferentes sistemas operacionais, diferentes tamanhos de arquivo, etc. Eu tentei em ambos os modos, binário e ASCII, para a transferência de arquivos de texto e nada parece fazer diferença. Alguém já viu isso antes ou tem alguma ideia do que pode estar causando esse comportamento?

Atualização: O servidor FTP está em uma sub-rede diferente das máquinas clientes com as quais testei anteriormente e tem um gateway Linux entre elas, parece que o problema está ocorrendo apenas quando máquinas em uma sub-rede diferente se conectam através do gateway ao servidor FTP. Quando máquinas na mesma sub-rede que o servidor FTP carregam arquivos de texto, os problemas não parecem ocorrer. Isso ainda não faz muito sentido, mas talvez haja um problema com o módulo ip_conntrack_ftp usado no gateway.

Atualização: Acontece que alguém instalou o Snort IDS em um dos lados do gateway, que estava dividindo os pacotes FTP em aproximadamente barreiras de nova linha que causavam o atraso dos arquivos de texto.

    
por Robert Gamble 16.07.2010 / 17:47

1 resposta

1

Talvez as conversões de terminação de linha no vsftpd tenham sido escritas de forma ineficiente, e como o modo binário é mais comumente usado, ninguém se preocupou em melhorar o algoritmo usado no vsftpd.

Ou, pode ser apenas que passar dados de um soquete de tcp para o disco é realmente muito mais rápido do que ter que verificar cada caractere para CR e LF. A verificação pode introduzir latência suficiente na conexão para reduzir sua velocidade de transferência.

Você está executando testes localmente na Ethernet (baixa latência, seria muito afetado pela latência adicional) ou pela Internet?

    
por 16.07.2010 / 18:37

Tags