Tengo un servidor de aplicaciones (embarcadero 6 en una caja Linux) que aloja 15 aplicaciones individuales (guerras individuales). Cada 3 o 4 días recibo una alerta de nagios con respecto al número de conexiones TCP abiertas. Tras la inspección, veo que la gran mayoría de estas conexiones son para el servidor MySQL.Rastreo de fugas de la conexión MySQL
netstat -ntu | grep TIME_WAIT
Shows más de 10.000 conexiones en el servidor MySQL desde el servidor de aplicaciones (nótese el estado TIME_WAIT es). Si reinicio el embarcadero las conexiones caen casi a cero.
algunos valores interesantes desde un estado de espectáculo:
mysql> show status;
+--------------------------+-----------+
| Variable_name | Value |
+--------------------------+-----------+
| Aborted_clients | 244 |
| Aborted_connects | 695853860 |
| Connections | 697203154 |
| Max_used_connections | 77 |
+--------------------------+-----------+
un "show processlist" no muestra nada fuera de lo normal (que es lo que sería de esperar ya que la mayoría de las conexiones son ralentí - recordar la Estado TIME_WAIT desde arriba).
Tengo una PRUEBA env para este servidor pero nunca tiene ningún problema. Obviamente, no recibe mucho tráfico y el servidor de aplicaciones se reinicia constantemente, por lo que la eliminación de errores no es de mucha ayuda. Supongo que podría profundizar en cada aplicación individual y escribir una prueba de carga que golpearía el código de la base de datos, pero esto tomaría mucho tiempo/molestia.
¿Alguna idea de cómo podría rastrear la aplicación que está tomando todas estas conexiones y nunca dejar ir?
No estoy seguro de que la recarga vuelva a cargar la configuración sin un reinicio completo. Verifique su comportamiento y la documentación. – MarkR
Buen punto - http://serverfault.com/questions/79043/reload-my-cnf-without-restarting-mysql-service – jckdnk111