Incluso los más poderosos de nosotros necesitamos dormir a veces. Sin dormir uno se vuelve ansioso y el insomnio puede conducir a todo tipo de síntomas graves.
Más en serio: el estado de suspensión significa que el proceso MySQL ha terminado con su consulta, pero el lado del cliente aún no ha salido. Muchas aplicaciones web no limpian sus conexiones después, lo que conduce a procesos de MySQL inactivos. No se preocupe si solo hay un puñado de ellos; MySQL limpiará esos después de un período de tiempo de espera configurable (wait_timeout).
O si su aplicación web usa conexiones persistentes y agrupación de conexiones, entonces es perfectamente normal tener incluso muchos procesos inactivos: en ese caso, su aplicación solo abre, por ejemplo, 100 conexiones SQL y las mantiene abiertas. Eso reduce la conexión de apertura / cierre de arriba. A menos que su aplicación esté muy ocupada, es normal que no casi todos los procesos de SQL tengan algo que hacer, por lo que se suspenden.
No, no te preocupes por ellos a menos que tengas miles de ellos. Por lo general, indican una conexión de base de datos que actualmente no está haciendo nada, pero que, de lo contrario, sigue viva.
Muchos sitios web se crean de tal manera que al comienzo del procesamiento de una página, se abre una conexión de base de datos, luego se usa durante toda la generación de la página y finalmente se descarta al final. Si el descarte se realiza correctamente, la conexión de la base de datos se cierra y el servidor eliminará el hilo relevante, lo que significa que esta conexión desaparece de la lista de procesos.
Si la conexión no está cerrada, puede permanecer en estado "SLEEP" hasta que se agote el tiempo de espera. En ese caso, puede terminar con muchos procesos de sueño. pero a menos que tenga problemas de memoria en el servidor db, este tampoco es un gran problema.
Antes de aumentar la variable max_connections, debe verificar cuántas conexiones no interactivas tiene ejecutando el comando show processlist.
Si tiene muchas conexiones inactivas, debe disminuir el valor de la variable "wait_timeout" para cerrar la conexión no interactiva después de esperar algunas veces.
Para mostrar el valor wait_timeout:
MOSTRAR VARIABLES DE SESIÓN COMO 'wait_timeout';
+ --------------- + ------- +
El | Nombre_variable | Valor |
+ --------------- + ------- +
El | wait_timeout | 28800 |
+ --------------- + ------- +
el valor está en segundo lugar, significa que la conexión no interactiva sigue siendo de hasta 8 horas.
Para cambiar el valor de la variable "wait_timeout":
Respuestas:
Incluso los más poderosos de nosotros necesitamos dormir a veces. Sin dormir uno se vuelve ansioso y el insomnio puede conducir a todo tipo de síntomas graves.
Más en serio: el estado de suspensión significa que el proceso MySQL ha terminado con su consulta, pero el lado del cliente aún no ha salido. Muchas aplicaciones web no limpian sus conexiones después, lo que conduce a procesos de MySQL inactivos. No se preocupe si solo hay un puñado de ellos; MySQL limpiará esos después de un período de tiempo de espera configurable (wait_timeout).
O si su aplicación web usa conexiones persistentes y agrupación de conexiones, entonces es perfectamente normal tener incluso muchos procesos inactivos: en ese caso, su aplicación solo abre, por ejemplo, 100 conexiones SQL y las mantiene abiertas. Eso reduce la conexión de apertura / cierre de arriba. A menos que su aplicación esté muy ocupada, es normal que no casi todos los procesos de SQL tengan algo que hacer, por lo que se suspenden.
fuente
No, no te preocupes por ellos a menos que tengas miles de ellos. Por lo general, indican una conexión de base de datos que actualmente no está haciendo nada, pero que, de lo contrario, sigue viva.
Muchos sitios web se crean de tal manera que al comienzo del procesamiento de una página, se abre una conexión de base de datos, luego se usa durante toda la generación de la página y finalmente se descarta al final. Si el descarte se realiza correctamente, la conexión de la base de datos se cierra y el servidor eliminará el hilo relevante, lo que significa que esta conexión desaparece de la lista de procesos.
Si la conexión no está cerrada, puede permanecer en estado "SLEEP" hasta que se agote el tiempo de espera. En ese caso, puede terminar con muchos procesos de sueño. pero a menos que tenga problemas de memoria en el servidor db, este tampoco es un gran problema.
fuente
Antes de aumentar la variable max_connections, debe verificar cuántas conexiones no interactivas tiene ejecutando el comando show processlist.
Si tiene muchas conexiones inactivas, debe disminuir el valor de la variable "wait_timeout" para cerrar la conexión no interactiva después de esperar algunas veces.
el valor está en segundo lugar, significa que la conexión no interactiva sigue siendo de hasta 8 horas.
Después de 10 minutos si la conexión de suspensión sigue durmiendo, mysql o MariaDB desconectan esa conexión.
fuente