Como eu poderia ajustar os parâmetros do kernel do Linux para que o soquete pudesse ser reciclado com freqüência?

4

Eu fiz um teste de carga no Ubuntu10.10 com o Siege 2.6.9, script que usei da seguinte forma, siege -c 900 -r 30 -i -f urls.txt , mas recebi toneladas de mensagens de erro como

  

error: socket: unable to connect sock.c:222: Operation already in progress or socket timeout

Percebi que o tempo de resposta da maioria das solicitações é inferior a 0,2 s, mas depois de um tempo, o tempo de resposta de algumas solicitações aumentou para 5 s, e uma pausa ocorreu periodicamente.
Então eu fiz alguns trabalhos de ajuste do kernel do Linux, por exemplo

sysctl -w net.ipv4.tcp_tw_reuse=1  
sysctl -w net.ipv4.tcp_timestamps=1  
sysctl -w net.ipv4.tcp_tw_recycle=1  

Depois disso, a circunstância se tornou melhor, mas não boa o suficiente,
Então, vocês poderiam me dar mais informações sobre o ajuste de parâmetros do socket / tcp no
Parâmetros do kernel do Linux, como reciclar / reutilizar / fechar os soquetes em um estado TIME_WAIT.
Quaisquer conselhos ou sugestões seriam muito apreciados. Muito obrigado.

    
por LeoYuan 袁力皓 01.06.2011 / 07:59

1 resposta

3

Você pode tentar diminuir o net.ipv4.tcp_fin_timeout, o que afeta o tempo que os soquetes permanecem em TIME_WAIT. Isso já é bastante baixo em 60; tente abaixar 10 de cada vez e veja se melhora a situação.

 echo 50 >/proc/sys/net/ipv4/tcp_fin_timeout 

Se funcionar, adicione-o ao sysctl.conf:

net.ipv4.tcp_fin_timeout = 50 # or whatever works best

Lembre-se de que, embora ajude no teste de carga, não é necessariamente um ótimo padrão para uso no mundo real.

  • Eric
por Eric 01.06.2011 / 13:12

Tags