MySql se cuelga - Monitorizar Consultas lentas
Este es un post de un compañero de blogs…. www.jesusyepes.com , os lo dejo aqui a ver si como a mi os solventa algún problema.
Hace poco me tope con un problema en uno de los servidores que administro, el mysql se colgo un par de veces en un mes y no sabía por qué.
Decidí buscar información para ver como podía ver que consultas estaban demorándose mucho y podían causar el cuelgue del servidor. Nota: Los comandos que he utilizado están sobre un servidor que usa plesk y centos 4, si usas otro sistema es posible que las ubicaciones de los archivos cambien.
Bien, primero, editamos el archivo de configuración de mysql, y añadimos las lineas:
long_query_time = 1
log_slow_queries = /var/log/slow-queries.log
La primera es el numero, en segundos, a partir del cual se considerará que la consulta es lenta. La segunda, el archivo en el que se guardarán dichas consultas (en mi caso, tuve que crearlo a mano para que me las guardara).
Después, tendremos que reiniciar el servidor mysql con /etc/initd/mysqld restart.
Si queremos comprobar que las consultas lentas están siendo logeadas, lo podemos hacer escribiendo mysqladmin -u admin -p var |grep log_slow_queries. Esto nos devolverá On o Off, según esté activado o desactivado.
Si tenemos phpmyadmin instalado, podemos entrar a este, después picnhamos sobre “mostrar información en tiempo de ejecución de MySql”. Podremos ver un campo llamado “slow_queries” que nos mostrará la cantidad de consultas lentas que han sido ejecutadas.
También puede sernos util ver que consultas se están ejecutando actualmente en el servidor. Podemos ejecutar mysqladmin -u admin -p proc status para saberlo.