MySQLTuner es una herramienta que te ayudará a sacar el mayor provecho posible de MySQL. Se trata de una herramienta gratuita escrita en perl que ofrecerá un diagnóstico de tu base de datos y además ofrecerá consejos para optimizar el servidor MySQL.
Revisar el rendimiento de MySQL periódicamente es esencial para no desperdiciar recursos y mejorar la carga de tu página web. Por suerte el uso de mysqltuner es en realidad muy sencillo.
Para empezar es necesario mencionar que en este artículo vamos a instalar mysqltuner en un servidor corriendo bajo el sistema operativo ubuntu 12.04. Los pasos a seguir pueden ser utilizados en cualquier otra versión y para servidor con CentOS u otro sistema operativo deberás cambiar alguno que otro comando.
Desde luego el primer paso debe ser iniciar sesión en tu servidor. También es recomendable hacer una actualización (mantener el servidor actualizado es de vital importancia para cualquier sistema operativo).
En ubuntu actualizamos el servidor con el siguiente comando:
sudo apt-get update && sudo apt-get -y upgrade
Es posible que el proceso tome algún tiempo en completarse, el comando indicado arriba actualizará el sistema operativo sin realizar ninguna pregunta. Si deseas revisar las actualizaciones antes de proceder debes eliminar la opción -y.
Una vez el proceso sea completado es hora de comenzar a instalar mysqltuner. Existen al menos 3 métodos de hacerlo, te enseñaré el más sencillo.
Instalar MySQLTuner desde los repositorios
MySQLTuner ha sido agregado a los repositorios oficiales de ubuntu, esto significa que la instalación es muy sencilla. Comenzamos ejecutando el siguiente código en la consola:
sudo apt-get install mysqltuner
(El servidor no tenía instalado MySQL, al instalar mysqltuner mysql también fue instalado)
Ejecutar MySQLTuner
Finalmente tenemos mysqltuner instalado, es tiempo de comenzar a utilizarlo para comenzar a utilizar mysqltuner utiliza el siguiente comando:
sudo mysqltuner
El proceso puede tardar algunos minutos en completarse. El tiempo va a depender del tamaño de tu base de datos. Una vez completado el resultado debe ser algo semejante a la salida de mi servidor de pruebas:
——– General Statistics ————————————————–
[–] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.5.54-0ubuntu0.12.04.1
[OK] Operating on 64-bit architecture——– Storage Engine Statistics ——————————————-
[–] Status: -Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[–] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17)
[!!] InnoDB is enabled but isn’t being used
[OK] Total fragmented tables: 0——– Performance Metrics ————————————————-
[–] Up for: 9m 25s (583 q [1.032 qps], 51 conn, TX: 39K, RX: 65K)
[–] Reads / Writes: 84% / 16%
[–] Total buffers: 192.0M global + 2.7M per thread (151 max threads)
[OK] Maximum possible memory usage: 597.8M (0% of installed RAM)
[OK] Slow queries: 0% (0/583)
[OK] Highest usage of available connections: 0% (1/151)
[OK] Key buffer size / total MyISAM indexes: 16.0M/98.0K
[OK] Key buffer hit rate: 98.5% (65 cached / 1 reads)
[!!] Query cache efficiency: 0.0% (0 cached / 86 selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 1 sorts)
[OK] Temporary tables created on disk: 19% (56 on disk / 284 total)
[OK] Thread cache hit rate: 98% (1 created / 51 connections)
[OK] Table cache hit rate: 21% (41 open / 189 opened)
[OK] Open file limit used: 4% (48/1K)
[OK] Table locks acquired immediately: 100% (285 immediate / 285 locks)
[!!] Connections aborted: 9%——– Recommendations —————————————————–
General recommendations:
Add skip-innodb to MySQL configuration to disable InnoDB
MySQL started within last 24 hours – recommendations may be inaccurate
Enable the slow query log to troubleshoot bad queries
Your applications are not closing MySQL connections properly
Variables to adjust:
query_cache_limit (> 1M, or use smaller result sets)
Aplicar las recomendaciones de MySQLTuner
Para finalizar puedes seguir las recomendaciones de mysqltuner y modificar tu archivo de configuración para el servidor MySQL. En Ubuntu puedes encontrar el archivo de configuración en:
/etc/mysql/my.cnf
Finalmente una vez aplicados los cambios debes reiniciar el servidor MySQL. Por lo general para realizar otro análisis deberás esperar al menos 24 horas pues de otra manera los resultados no serán adecuados.
Ten en cuenta que es de vital importancia realizar una copia del archivo de configuración antes de realizar cualquier modificación.