systemadmin.es > DBA > Dimensionado del innodb_buffer_pool basado en el hit rate

Dimensionado del innodb_buffer_pool basado en el hit rate

Para bases de datos InnoDB medianas y grandes nos podemos encontrar que herramientas como mysqltuner nos indican problemas como los siguientes:

[!!] InnoDB data size / buffer pool: 50.9G/6.5G

Evidentemente en las recomendaciones de mysqltuner nos aparecerá:

    innodb_buffer_pool_size (>= 50G)

Evidentemente si disponemos de un SGI Altix 3700 Bx2 con 384 GB de RAM no creo que sea mucho problema, aunque en muchos casos desperdiciaríamos esa memoria.

En muchas bases de datos, tenemos datos raramente accedidos, por lo que suponer que todos los datos deberían caber en memoria para un acceso más rápido, no es incorrecto, pero tampoco optimo.

Podemos evaluar esto mediante el buffer pool hit rate. Dicho valor nos indica que porcentaje de las veces cuando ha ido a buscar un dato se lo ha encontrado en memoria. Por lo tanto, como más grande mejor. Dicho valor lo podemos ver mediante SHOW ENGINE INNODB STATUS junto con otra mucha información:

mysql> show engine innodb status\G
(...)
----------------------
BUFFER POOL AND MEMORY
----------------------
Total memory allocated 7676234680; in additional pool allocated 1048576
Dictionary memory allocated 235200
Buffer pool size   425984
Free buffers       0
Database pages     420751
Modified db pages  2924
Pending reads 1
Pending writes: LRU 0, flush list 0, single page 0
Pages read 22591066, created 520913, written 27364052
73.00 reads/s, 1.55 creates/s, 126.19 writes/s
Buffer pool hit rate 997 / 1000
(...)

Para bases de datos más pequeñas podremos encontrar valores mucho más altos:

----------------------
BUFFER POOL AND MEMORY
----------------------
Total memory allocated 5911270202; in additional pool allocated 8388608
Dictionary memory allocated 808328
Buffer pool size   327680
Free buffers       7
Database pages     316291
Modified db pages  952
Pending reads 0
Pending writes: LRU 0, flush list 0, single page 0
Pages read 1713575, created 1462223, written 12351696
0.46 reads/s, 0.05 creates/s, 1.27 writes/s
Buffer pool hit rate 1000 / 1000

Ya que podremos dedicar más memoria proporcionalmente a los datos existentes, pero para bases de datos mayores deberemos encontrar nuestro punto entre comprar más RAM y lecturas desde disco.

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>