¿Supervisar el uso de bytes de grandes grupos de búfer MySQL InnoDB?

¿Supervisar el uso de bytes de grandes grupos de búfer MySQL InnoDB?

Estoy tratando de monitorear el número total de bytes usados ​​en un grupo de búfer MySQL 5.7 InnoDB, que puede llegar hasta 100 GB, Innodb_buffer_pool_bytes_datapero parece que esta variable de estado es un entero sin signo de 32 bits cuando la consulto, por lo que se desborda cuando los bytes pasan de 2 ^ 32.

Parece ser un entero largo sin signo internamente en MySQL (https://github.com/mysql/mysql-server/blob/5.7/storage/innobase/include/srv0srv.h#L892)?

Al principio pensé que el desbordamiento estaba en mi pila de monitoreo (Telegraf+InfluxDB+Grafana).

Gráfico de Grafana que muestra el desbordamiento de Interger a lo largo del tiempo, siendo Innodb_buffer_pool_bytes_data de 490 MB actualmente

-pero consultar MySQL directamente parece revelar que es de MySQL y no de mi solución de monitoreo:

SHOW GLOBAL STATUS WHERE Variable_name = "Innodb_buffer_pool_bytes_data"

-produce 490371968aproximadamente la misma marca de tiempo de muestra vista en Grafana arriba.

¿Cómo puedo controlar con precisión el valor real?

Respuesta1

Ese gráfico parece que MySQL se reinició (o el servidor se reinició) aproximadamente a las 12:16. El buffer_pool crecerá hasta llegar a innodb_buffer_pool_size.

Si no tiene suficiente RAM para buffer_pool (y otras cosas), puede fallar. Esa configuración debe establecerse en aproximadamente el 70% de la RAM disponible.

información relacionada