Ajuste de Performance no SAMBA
É interessante como configurações iguais, mas em clientes diferentes, podem gerar problemas. Eu precisei instalar um SAMBA em um cliente para que o mesmo pudesse trocar arquivos com o pessoal de desenvolvimento do site web. O estranho foi que, ao tentarmos transferir um arquivo de 30MB, o processo demorava, intermináveis, 10 minutos. o Engraçado é que esta mesma configuração estava rodando em um outro cliente, sem qualquer tipo de problema… Bom fui pesquisar e encontrei algumas coisas ineressantes.
A primeira coisa que encontrei em http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/speed.html, foi a variável “socket options” que nos permite adicionar alguns parâmetros no modo como o SAMBA trata as conexões.
Depois encontrei mais informações em http://oreilly.com/catalog/samba/chapter/book/appb_02.html.
Para simplificar minha linha no smb.conf ficou assim:
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
A opção TCP_NODELAY indica que o SAMBA vai mandar quantos pacotes forem necessários para mater a transferência rápida. Aparentemente só essa opção traz um ganho de 50% na taxa de transferência.
SO_SNDBUF e SO_RCVBUF indicam que os buffers de envio e recebimento podem ser utilizados em valores superiores ao do sistema operacional.
Resumindo a ópera, uma transmissão que durava 10 minutos, passou a ser feita em 20 segundos. É um bom ajuste de performance.
