Estoy insertando una prueba de estrés en mi aplicación web que se conecta a un servidor mysql y estoy monitoreando la lista de procesos show de mysql.La lista de procesos show de Mysql enumera muchos procesos sleep e info = null?
cuando la carga es alta (alta de intercambio de e/s) consigo muchos procesos como la que:
| 97535 | db| localhost | userA | Sleep | 515 | | NULL
| 97536 | db| localhost | userA | Sleep | 516 | | NULL
| 97786 | db| localhost | userA | Sleep | 343 | | NULL
| 97889 | db| localhost | userA | Sleep | 310 | | NULL
Pero no puedo entender por qué están todavía allí y no destruyen? Esto finalmente lleva a que mi aplicación use todas las max_connections y detenga el procesamiento de las solicitudes entrantes ...
¿Alguna idea de qué son esos procesos y qué están haciendo allí :)?
¿Hay alguna variable de tiempo de espera de mysql que pueda ajustar para evitar esto? – AlfaTeK
Puede establecer wait_timeout en algo más pequeño (http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_wait_timeout) o aumentar el límite de conexión. Sin embargo, realmente quiere resolver esto en el lado de la aplicación. Colgar la conexión desde el lado de la base de datos corre el riesgo de cerrar una conexión justo cuando la aplicación intenta usarla, lo que puede causar un error de la aplicación sin una buena razón. ¿Qué biblioteca de conexión de base de datos está usando? –
@KeithRandall, pero ¿cómo identificar los procesos nulos? – Khuram