Passei recentemente por um problema em que a taxa de upload estava muito baixa e os processos de natd e squid, em uma máquina com FreeBSD 9, estavam exageradamente altos.

Após inúmeras pesquisas descobri que placas de rede PCI-e, em FreeBSD 9, não trabalham corretamente quando o TSO (TCP Segmentation Offload) está habilitado.

Por padrão, as interfaces de rede no FreeBSD 9 com placas PCI-express já são levantadas com o TSO habilitado. Para desabilitar, edite o arquivo /etc/sysctl.conf e, ao final da linha, digite:

net.inet.tcp.tso=0

A execução acima fará que, toda vez que o sistema for reiniciado, o sysctl execute esta alteração. Aproveite para desabilitar instantaneamente:

sysctl -w net.inet.tcp.tso=0

Agora desabilitando na interface:

ifconfig emX -tso

Veja uma imagem do tráfego no FreeBSD com o TSO HABILITADO (alta carga desnecessária no loopback zerando o upload):

Captura de Tela 2014-02-22 às 03.44.45

Agora vejamos uma imagem com o TSO DESABILITADO (tráfego normalizado):

Captura de Tela 2014-02-22 às 03.47.56

Resolvido!

Author

Rodrigo Calado é sócio-fundador e CTO do Gran Cursos Online. Graduado em Gestão da Tecnologia da Informação, pós-graduando em Governança de TI pela Universidade Católica de Brasília e cursou MBA em Gestão e Empreendedorismo pela FGV. Possui convicta paixão pela área de tecnologia, educação digital, concursos públicos e empreendedorismo.

Write A Comment