Ir al contenido
Otras versiones

Cargando…

Ajuste de MySQL

Tome esta documentación tal cual, no como una guía definitiva para ajustar MySQL. Debería leer mucha información antes de cambiar la configuración de MySQL. La documentación se basa en la experiencia compartida por administradores de servidores OpenKM.

Enlaces útiles:

Información del servidor

  • Windows Server 2008 virtualizado
  • CPU: Intel Xeon X3470 @2.93 GHz
  • RAM: 7GB
  • Parámetros JVM para Tomcat: -Xms 3072 -Xmx 3072 -XX:PermSize=256m -XX:MaxPermSize=512m
  • El repositorio es de 1GB

Cambios en my.cnf de MySQL

  • innodb_buffer_pool_size=1792M
  • innodb_additional_mem_pool_size=16M
  • innodb_log_file_size=256M
  • innodb_log_buffer_size=8M

Usar el motor InnoDB del servidor MySQL con los parámetros de configuración por defecto del fichero my.cnf puede causar un cuello de botella de rendimiento severo en aplicaciones con mucha actividad de lectura-escritura en la base de datos. MySQL debería tener suficiente RAM para cachear el repositorio y evitar una alta actividad de E/S de disco.

Los parámetros más importantes son:

  • innodb_buffer_pool_size
  • innodb_additional_mem_pool_size
  • innodb_log_file_size
  • innodb_log_buffer_size

Consideraciones El repositorio es de 1 GB, así que 1792M es suficiente RAM para innodb_buffer_pool_size. Cuanto más grande sea el repositorio, más memoria deberá asignar a innodb_buffer_pool_size. En un servidor MySQL x86, no puede asignar más de 2 GB de RAM.

Información recopilada de publicaciones del foro de OpenKM.

Información del servidor

  • CPU: Intel Xeon E5606 @2.13GHz
  • RAM: 4GB
  • Sistema: Windows Server 2008, 64 bits
  • JAVA_OPTS=-Xms256m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m -Djava.awt.headless=true -Dfile.encoding=utf-8
  • Tamaño de la base de datos: 2.5G
  • Tamaño del repositorio: 40GB
  • 100.000 nodos (carpetas + documentos)

Cambios en my.cnf de MySQL

  • query_cache_size=0
  • table_open_cache=2000
  • tmp_table_size=16M
  • thread_cache_size=9
  • myisam_max_sort_file_size=100G
  • myisam_sort_buffer_size=32M
  • key_buffer_size=8M
  • read_buffer_size=64K
  • read_rnd_buffer_size=256K
  • sort_buffer_size=256K
  • innodb_additional_mem_pool_size=16M
  • innodb_log_buffer_size=8M
  • innodb_buffer_pool_size=1042M

Resultados

Antes de la optimización, el tiempo de login era de unos 45-55 segundos, con mucho uso de E/S de disco. Después de la optimización de MySQL, el login tarda unos 10 segundos.

Información recopilada de publicaciones del foro de OpenKM.