×
Las consultas de MySQL en estado sleep

Las consultas de MySQL en estado sleep


En algunas ocasiones es posible que al estar revisando un servidor notes que hay un gran consumo de CPU y de recursos por parte de MySQL cuando eso no debería ser así. Verificando la lista de procesos de MySQL probablemente descubrirás que muchas consultas se han quedado en estado «sleep» (dormidas) durante varios segundos. Usualmente, una consulta de MySQL no debería demorar más de 1 segundo en ser atendida, por lo que si el tiempo indicado es mayor o considerablemente mayor, hay algún problema.

¿Qué se puede hacer cuando las consultas de MySQL se quedan en estado sleep?

1) Corregir y optimizar el código.

Esta es la forma más efectiva de resolver el problema. En caso de que uses conexiones persistentes, debes de ser consciente de que rara vez son utilizadas. Prácticamente la única situación en la que son útiles es cuando el servidor MySQL tiene una latencia elevada. Si el servidor web tarda demasiados milisegundos en comunicarse con el servidor MySQL, este tipo de conexión podría llegar a ser útil.

2) Restringir las conexiones.

Si hay usuarios que hacen un uso abusivo de las conexiones, siempre es posible restringirla para evitar problemas. Como MySQL no pone en fila las conexiones extra, simplemente se verá un mensaje del estilo «se ha excedido el máximo de conexiones MySQL permitidas».

Un ejemplo desde la consola MySQL:

GRANT ALL PRIVILEGES ON basededatos.* TO 'elusuario'@'localhost' WITH MAX_USER_CONNECTIONS = 25;

3) Reducir los timeouts.

Si corregir el código no es una opción y no deseas restringir las conexiones, entonces puede probar a reducir las variables wait_timeout e interactive_timeout. La primera afecta a las conexiones no interactivas, y la segunda a las que sí son interactivas. Puedes bajarlas a 30 segundos y probar cómo responde el servidor. Las visitas que lleguen a los sitios web no deberían notar la diferencia.

¿Te gustó el artículo? Compártelo:

Santiago Borges

Escrito por Santiago Borges

Departamento Técnico VIP, asignado a brindar soporte de forma exclusiva a clientes de alto tráfico y con requerimientos de programación. Además, es un experimentado SysAdmin, que se encargará de que recibas la mejor asistencia ante cualquier problema. Actualmente está cursando estudios de RHCE y posee certificaciones en Inglés por la Universidad de Cambridge. Conoce más sobre él desde su perfil de LinkedIn.

    Recibe en tu correo electrónico toda la información sobre hosting, desarrollo web y dominios

    Términos y Condiciones de Servicio

    Infranetworking Internacional - Copyright 2002-2024
    Todos los derechos reservados.