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.