Por que meu servidor não pode atender mais de 400 conexões simultâneas

1

Eu tenho um Ubuntu 14.04 LTS, kernel 3.13 em uma caixa Intel Xeon + 8Gb. Tem o apache 2.4.7 configurado em mpm worker com até 4000 workers. A largura de banda máxima permitida pelo ISP é de 100 Mbps.

Se eu testar este servidor com o apache ab localmente:

 ab -n 10000 -c 1000 http://www.mysite.com/test.png

E a partir de outro terminal, verifico os funcionários do apache:

 watch -n0 'ps -eLf | grep apache | wc -l'

Eu posso ver a contagem de funcionários crescendo até atingir os 1000 segmentos que atendem às solicitações. Até aí tudo bem.

No entanto, se eu executar o mesmo teste de uma máquina externa, os funcionários param de crescer em torno de 400 trabalhadores. Eu acho que isso está relacionado a algum gargalo na configuração tcp / ip. Pesquisando na web Eu encontrei várias páginas da web explicando como aumentar algumas configurações de sysctl para obter mais conexões simultâneas. Eu tentei isso:

 sysctl -w net.core.somaxconn=50000
 sysctl -w net.ipv4.tcp_max_syn_backlog=30000
 sysctl -w net.core.netdev_max_backlog=5000

No entanto, repetir o teste com essas novas configurações não faz diferença. Você não pode ver mais de 400 trabalhadores simultaneamente.

Onde poderia estar o gargalo da garrafa?

    
por David 19.04.2016 / 12:49

0 respostas