Optimizar MySQL en servidores Linux

Un elevado número de consultas, uso de campos no optimizados, tablas que guardan datos innecesarios, uso inadecuado o inexistente de los índices y un sin fin de errores de programación hacen que muchas veces potentes servidores no puedan con la carga de trabajo de MySQL.

Por suerte tenemos MySQLTuner, un script creado en PERL, que nos permite realizar una mejor optimización cuando no es posible optimizar la programación. Este script nos ayudará a optimizar MySQL a nivel administración del sistema, mediante la modificación del fichero de configuración de MySQL (my.cnf) siguiendo las recomendaciones que el programa nos ofrecerá, ganando en eficacia y estabilidad. Los requisitos del sistema en MySQLTuner son pequeños y lo hacen compatible con la mayoría de los sistemas UNIX instalados (Linux, BSD y variantes, y Solaris). Para ejecutar el script necesitarás:

  • Perl 5.6 o superior
  • MySQL 3.23 o superior (el script esta parcialmente soportado por MySQL 5.1 y 6.0)
  • Sistema Unix/Linux
  • Usuario de acceso a MySQL sin restricciones (root recomendado para versiones anteriores a la 5.0)

Descargar y ejecutar:

Su uso:
Lo más importante para obtener buenos resultados, es no realizar modificaciones recomendadas por el script, cuando el servidor MySQL no lleva mas de 24 horas activo, ya que los datos que recoge del comando SHOW STATUS no ofrecen datos suficientes para un análisis adecuado, y podemos seguir consejos erróneos.

Es conveniente ir ajustando poco a poco los valores, realizando comprobaciones rutinarias durante un tiempo.

Para evitar que cada vez que lo queramos ejecutar o para incorporarlo como veremos más adelante en una tarea cron que nos permita tener un seguimiento durante un tiempo de nuestros resultados:

Usa el fichero de configuración de usuario, que te permitirá trabajar no solo con este script sin autentificarse, sino operar con el comando MySQL, mysqldump, y otros, sin necesidad de pasar los datos de usuario y contraseña.

Para hacer un seguimiento del script podemos crear una tarea cron que nos permita recibir en nuestro correo una copia del volcado del programa, y cada dos días por ejemplo, realizar las modificaciones planteadas.

Antes de ejecutar el script es conveniente y además una buena práctica para mejorar la velocidad de MySQL el optimizar todas las bases de datos con el comando mysqlcheck.

Es importante ajustar de manera adecuada el máximo posible de uso de memoria por parte de MySQL. Este valor esta en la línea:

El valor vendrá dado por el numero máximo de usuarios, que será el factor de multiplicación de otros valores ajustables como son los tamaños de los buffers de las llaves (key buffers).

En el caso de que en la misma máquina se ejecute un servidor Web como Apache, debemos tener en cuenta los consumos de memoria de Apache y su configuración, ya que esta estará relacionada directamente con el número máximo de usuarios, que deberá tener en cuenta el número máximos de conexiones concurrentes de Apache.

Debemos pues encontrar el equilibrio, entre ambas aplicaciones. En esto, MySQLTuner nos ayuda ya que en el caso de alcanzar el número máximo de conexiones de MySQL nos lo dirá en el informe.

Es recomendable, una política conservadora en los primero paso de optimización para ir mejorando poco a poco, nuestra configuración.

Es conveniente crear una política de rotación de logs, pues el tamaño de este log puede ser muy elevado. Puedes utilizar el sistema de Mantenimiento de ficheros de registro (log) de MySQL o hacer uso de las tareas cron para rotar.

 

facebook Optimizar MySQL en servidores Linuxtwitter Optimizar MySQL en servidores Linuxgoogle Optimizar MySQL en servidores Linuxdiggit Optimizar MySQL en servidores Linuxpinterest Optimizar MySQL en servidores Linuxlinkedin Optimizar MySQL en servidores Linuxprint Optimizar MySQL en servidores Linuxemail Optimizar MySQL en servidores LinuxSi te gusto, comparte el articulo.

Artículos Relacionados

Agregar comentario


*

Recibe nuestro newsletter

Suscribete a nuestro newsletter y mantente informado con nuestros últimos artículos, noticias y más. Todo completamente gratis.