Número muito grande de conexões no estado TIME_WAIT; O servidor está lento, ipconntrac

4

Eu tenho um servidor nginx com balanceamento de carga e proxy reverso. Agora ele está fazendo outro nginx, mas muito em breve eu pretendo torná-lo frente, onde receberá conexões TCP de clientes diretamente a uma taxa de 500req / segundo

Estou tendo alguns grandes problemas com o servidor. Eu colei minhas configurações aqui e estou certo de que o problema é com ipconntrac e coisas similares que são amigáveis para mim

link

root@load_balancer:/proc/sys/net/ipv4# netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c
     67 CLOSING
    727 ESTABLISHED
    173 FIN_WAIT1
    183 FIN_WAIT2
     19 LAST_ACK
      5 LISTEN
    447 SYN_RECV
      1 SYN_SENT
  27970 TIME_WAIT

É uma máquina Ubuntu com principalmente nginx (balanceador de carga e proxy reverso) instalado.

Certamente não é ótimo. Você pode me ajudar a entender o que está acontecendo e como posso consertar isso? Este é o meu servidor ao vivo e estou certo de que está em má forma agora. Qualquer documento ou comandos para corrigir isso, ou configurações que eu deveria fazer para tornar isso melhor e reduzir o tempo de espera e fin_wait1 / 2 melhor seria incrível.

    
por Sparsh Gupta 07.02.2011 / 21:57

2 respostas

9

Tente o seguinte:

echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse

Provavelmente, ajudará a reduzir o número de conexões TIME_WAIT. Você também pode tornar essas alterações permanentes em /etc/sysctl.conf :

net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle=1
    
por 07.02.2011 / 22:04
-3

TIME_WAIT são as conexões de estado quando você usa o recurso Keep Alive . O padrão é manter as conexões ativas por 75 segundos, pois o Nginx quase não usa recursos para manter uma conexão aberta. Se você acha que isso é excessivo para o seu sistema operacional ou precisa, você pode reduzi-lo (ou removê-lo).

    
por 08.02.2011 / 08:10

Tags