Si deseamos analizar el fichero de logs de mysql , lo primero que tenemos que tener es activado en el fichero de configuración my.cnf que guarde todas las consultas con un tiempo mayor al que quieras.
> vi /etc/my.cnf
log-slow-queries=/var/log/mysql-slow-queries.log
slow_query_log=1
long_query_time=3
#log-queries-not-using-indexes
Le hemos puesto que escriba todas las consultas que sobrepasen los 3 segundos. Podemos descomentar la ultima linea y también se escribirán las consultas con join de las tablas que no tengan indices declarados o no los tengan bien declarados. Podemos ver una configuración optima de my.cnf
Una vez reiniciemos el servicio de mysql, tendremos en la ruta determinada, el fichero de log a analizar.
> /etc/rc.d/init.d/mysqld restart
Para analizar el fichero de log de MySQL, tenemos el siguiente mysqldumpslow donde podemos saber todas las opciones que podemos sacar del fichero.
mysqldumpslow -s c -t 10 /var/log/mysql-slow-queries.log > /root/slowqueries.txt
En nuestro caso, sacamos las 10 consultas más lentas que tenemos, ordenadas por el numero de veces que se ha producido esta lentitud, y las metemos en un fichero para luego analizarlas. Tambien podriamos sacar esto por pantalla eliminando la ultima parte de la ruta.
Pingback: TIP: Analizar el log de mysql mysql-slow-querys.log para detectar consultas lentas « DbRunas – Noticias y Recursos sobre Bases de Datos
Pingback: error 503 service unavailable y como solucionarlo optimizando php-fpm | Blog de David Rodriguez