Ejecutamos un sitio web con mucho tráfico. En los últimos días, varios clientes se han quejado de tiempos de inactividad intermitentes que no podemos reproducir. Tenemos varios servidores web designados para recibir tráfico de nuestro balanceador de carga, y al investigar me di cuenta de que todos los servidores estaban perdiendo más de 20 conexiones por segundo. Una muestra de conexiones de un servidor se veía así:
38452 TIME_WAIT
7815 ESTABLISHED
570 FIN_WAIT2
105 FIN_WAIT1
101 LAST_ACK
36 SYN_RECV
25 CLOSING
4 SYN_SENT
2 CLOSE_WAIT
1 Foreign
Nuestro rango de puertos configurado está actualmente establecido en 15000 61000
en todos los servidores. Parecería, entonces, que todos los puertos posibles deben estar agotados ya que el número de conexiones establecidas o esperando cerrarse es igual a 46267.
Mientras investigamos el tráfico, ¿qué deberíamos hacer con las conexiones perdidas? ¿Sería prudente aumentar nuestro rango de puertos? ¿Disminuir la cantidad de tiempo que esperan las conexiones para cerrarse? ¿Ambas cosas? ¿Hacer alguna de ellas tendría alguna consecuencia negativa potencial?