Ubuntu Server 10.04.1 x86
Tengo una máquina con un servicio HTTP FCGI detrás de nginx, que sirve un montón de pequeñas peticiones HTTP a un montón de clientes diferentes. (Unas 230 peticiones por segundo en las horas punta, el tamaño medio de la respuesta con cabeceras es de 650 bytes, varios millones de clientes diferentes al día).
Como resultado, tengo un montón de sockets, colgando en TIME_WAIT (el gráfico se captura con la configuración de TCP abajo):
Me gustaría reducir el número de enchufes.
¿Qué puedo hacer además de esto?
$ cat /proc/sys/net/ipv4/tcp\_fin\_timeout
1
$ cat /proc/sys/net/ipv4/tcp\_tw\_recycle
1
$ cat /proc/sys/net/ipv4/tcp\_tw\_reuse
1
Actualización: algunos detalles sobre la disposición real del servicio en la máquina:
client -----TCP-socket--> nginx (load balancer reverse proxy)
-----TCP-socket--> nginx (worker)
--domain-socket--> fcgi-software
--single-persistent-TCP-socket--> Redis
--single-persistent-TCP-socket--> MySQL (other machine)
Probablemente debería cambiar la conexión del balanceador de carga --> trabajador a sockets de dominio también, pero el problema de los sockets TIME_WAIT permanecería - planeo añadir un segundo trabajador en una máquina separada pronto. No podré usar los sockets de dominio en ese caso.