Aumente el tamaño de la agrupación de almacenamiento intermedio de InnoDB


11

Tengo dificultades para configurar el tamaño de la agrupación de almacenamiento intermedio y el tamaño del archivo de registro para MySql InnoDB. Estoy lejos de ser un experto en MySql pero he estado leyendo y parece que para cambiar esto solo agrego estas líneas a mi /etc/mysql/my.cnf

# Set buffer pool size to 50-80% of your computer's memory
innodb_buffer_pool_size=2048M
innodb_additional_mem_pool_size=512M
#
# Set the log file size to about 25% of the buffer pool size
innodb_log_file_size=256M
innodb_log_buffer_size=128M

El servidor tiene aproximadamente 7 GB de memoria y también está ejecutando un servidor web, por lo que creo que estos números deberían ser un buen punto de partida. Después de guardar y reiniciar el servidor, no parece que los cambios hayan tenido efecto. Intenté ejecutar Mysqltuner que informó que el grupo de búferes todavía está a 16.0M. ¿Alguna idea de lo que estoy haciendo mal? Avíseme si desea ver más del archivo de configuración. ¡Gracias!


que distribucion ¿Estás usando los paquetes de la distribución o algo más? ¿Cómo estás comenzando mysql? En resumen, ¿qué instaló, en qué lo instaló y cómo lo instaló?
Navajo

Es la pila de lámparas predeterminada en la parte superior del servidor Ubuntu x64
tgrosinger

Había otro archivo de configuración ubicado en / opt / lampp / etc que creo que funcionará.
tgrosinger

Respuestas:


7

Asegúrese de que esas líneas estén dentro de la [mysqld]sección, es decir, después [mysqld]pero antes de cualquier otra [section]como [mysqldump].


Están en la sección correcta, en [mysqld] justo antes de [mysqldump]
tgrosinger

2

Consulte su registro de errores de MySQL para obtener información, muy probablemente ubicada en /var/lib/mysql, también, ¿es este un sistema de 32 bits con el kernel bigmem? Si es así, no puede abordar más de 2 GB para MySQL.

Además, querrá confirmar desde el propio MySQL sobre el tamaño de la agrupación de almacenamiento intermedio: 16 MB suena un poco apagado, considerando que el valor predeterminado es 128M. Puede confirmar esto escribiendo 'MOSTRAR VARIABLES COMO' innodb_buffer_pool_size 'en una sesión de MySQL para ese servidor. El resultado está en bytes.


Por alguna razón no puedo entrar en ese directorio. Puedo verlo cuando hago ls en / var / lib pero cuando trato de grabarlo obtengo un "permiso denegado". Si trato de cd en sudo dice "No existe tal archivo o directorio". Pensamientos? Es una instalación de 64 bits de Ubuntu Server.
tgrosinger

Debe publicar su my.cnf (/etc/my.cnf o en debian probablemente /etc/mysql/my.cnf)
thinice

Además, querrá confirmar desde el propio MySQL sobre el tamaño de la agrupación de almacenamiento intermedio: 16 MB suena un poco apagado, considerando que el valor predeterminado es 128M. Puede confirmar esto escribiendo 'MOSTRAR VARIABLES COMO' innodb_buffer_pool_size 'en una sesión de MySQL para ese servidor. El resultado está en bytes.
thinice

1
sudo cdno funcionará porque sudo crea una subshell con los privilegios correctos y la cierra cuando termina, dejándolo donde comenzó. Intenta en su sudo -slugar.
Ladadadada

Entonces, cuando uso SHOW VARIABLES LIKE ... dice que el tamaño del grupo de búferes es 16777216, que creo que es de hecho 16M. Aquí está my.cnf: hastebin.com/binaqeforu.vala ¡ Muchas gracias!
tgrosinger

2

En mi caso el problema fue innodb_buffer_pool_instances.

Como estaba reduciendo innodb_buffer_pool_size, se convirtió en menos de 1 GB por instancia, por lo que terminó redondeándolo.

Cuando también reduje las instancias , ¡finalmente cambió el tamaño del grupo !


0

Puede comenzar mysql con --no-defaults o (-no-defaults), lo que hace que no cargue una configuración en absoluto. También hay --defaults-file (o -default-file, no estoy seguro), lo que hace que cargue una configuración específica. También verifique si es una configuración diferente a la que edita.

Puedes intentar comenzar con:

--innodb_buffer_pool_size=2048M --innodb_log_buffer_size=512M

O revise los parámetros con los que ya está comenzando y vea si uno de ellos hace que omita la configuración.


¿Cómo puedo ver cómo se está iniciando en ubuntu? Estoy acostumbrado a archivar donde simplemente lo agregaría al archivo rc.d, pero no veo nada de eso aquí.
tgrosinger

Arch usa Init Style BSD, mientras que Ubuntu usa Init SysV. Entonces, hay un archivo en /etc/init.d para iniciarlo y posiblemente un archivo en / etc / por defecto donde se están configurando las opciones. Al usar algo en la línea de 'ps -ef | grep mysql 'puede ver con qué opciones se está ejecutando actualmente.
juwi
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.