
¿Cuál sería el motivo de que haya muchos TIME_WAIT
aquí? Incluso tenemos muy pocas conexiones SYN ESTABLECIDAS.
[root@www ~]# netstat -natp | grep "210.XX.XX.XX:80" | awk '{print $6}' | sort | uniq -c
1 ESTABLISHED
12 FIN_WAIT2
9903 TIME_WAIT
Respuesta1
Para poder explicar esto es necesario tener un buen conocimiento de las comunicaciones TCP/IP. En la forma más simple, cuando alguien se conecta a su servidor web, su servidor asume que la conexión durará un tiempo, asigna un puerto para esa comunicación y establece un tiempo de espera para ese canal de comunicación. El canal o el puerto, como se ve en netstat
la salida, pasa al estado TIME_WAIT, si la persona en el otro extremo, es decir, el cliente, deja de comunicarse. Quizás todo lo que necesitaba era mirar una página y listo. Pero su servidor no puede saber eso. Está operando bajo el supuesto de que la comunicación llevará mucho tiempo.
La razón por la que hace esto es principalmente porque es más costoso (en términos de recursos) establecer un nuevo canal de comunicación que mantener uno existente, especialmente si el cliente va a realizar múltiples solicitudes desde su servidor. Si quieres ser un experto y aprender más sobre esto, aquí hay un artículo bastante bueno al respecto:http://www.serverframework.com/asynchronousevents/2011/01/time-wait-and-its-design-implications-for-protocols-and-scalable-servers.html
Si está interesado en cómo deshacerse de ellos o evitar que sucedan con tanta frecuencia y por qué ocurren en forma resumida, aquí hay otra página que quizás desee consultar:http://www.fromdual.com/huge-amount-of-time-wait-connections