Pregunta

Estoy revisando un problema de grupo de búfer en una base de datos MySql.Según el consulta para obtener el tamaño de la base de datos que se muestra aquí, el tamaño total de la base de datos es de unos 11 GB.Desafortunadamente, sé que tengo mucha menos RAM que eso;solo unos 4,5 GB en total para esta máquina virtual.Así que verifico el uso del grupo de búfer de InnoDB, esperando verlo casi en su capacidad.En cambio, veo lo contrario:

show engine innodb status \G;
...
Buffer pool size    163839
Free buffers        132864
...

Parece que el grupo de almacenamiento intermedio apenas se toca.Y sí, estas son todas las tablas de InnoDB:

SELECT Engine, COUNT(*) "Count" 
FROM Information_Schema.Tables 
WHERE table_schema = 'My_Database'
GROUP BY Engine;
Engine   Count
-----    -----
InnoDB    169

¿Qué podría estar pasando aquí?

¿Fue útil?

Solución

Tonto que soy... el servidor se reinició esta mañana.Me di cuenta de esto cuando estaba terminando la pregunta.El grupo de búfer no se llenará hasta que la base de datos realmente necesite usar esa cantidad de datos.De hecho, si vuelvo a ejecutar la consulta del grupo de búfer, puedo ver que el número de "Búferes libres" disminuye lentamente.

Podría ejecutar algunas consultas para forzar las tablas en la memoria, pero dado que sé que no tengo suficiente memoria (espero abordar esto pronto), debería esperar y dejar que mis usuarios le digan a la base de datos qué datos son más importantes.

Otros consejos

Si está ejecutando 5.6+, puede hacer que el servidor descargue y precargue el grupo de búfer agregando un par de configuraciones a my.cnf, en lugar de esperar a que se caliente después de cada reinicio.

innodb_buffer_pool_dump_at_shutdown=ENCENDIDO innodb_buffer_pool_load_at_startup=ENCENDIDO

https://dev.mysql.com/doc/refman/5.6/en/innodb-preload-buffer-pool.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top