Buffer Pool Size of Total RAM No data

Posted 渔夫数据库笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Buffer Pool Size of Total RAM No data相关的知识,希望对你有一定的参考价值。

1.问题描述

1)问题现象

通过prometheus监控mysql实例和服务器,使用grafana做可视化展示,grafana 中添加 7362 号dashboard 作为mysql看板,添加 11074 号dashboard 作为主机看板。但是添加后查看 MySQL Overview 看板发现 Buffer Pool Size of Total RAM 这个panel 显示 No data,截图如下:

 2) prometheus 中关于mysql实例和主机监控配置方式如下:

prometheus 配置文件中指定了mysql监控任务及mysql服务器监控任务

 下面我们来看一下具体的mysql实例及对应的mysql服务器监控怎么配置的

先看服务器监控配置文件
vi prd_host.yml
- targets: ['172.25.xx.xxx:9100']
  labels:
    instance: '172.25.xx.xxx:9100'
    env: 'xxx mysql 服务器'
    group: 'xxx'

再看mysql实例监控配置文件
vi prd_mysql.json
[
    "targets": [ "172.25.xx.xxx:9104" ],
    "labels": 
      "instance": "172.25.xx.xxx:9104",
      "env": "xxx mysql",
      "job": "mysqld"
    
  
]

像上面这样一通配置下来,最终导致MySQL Overview 看板的 Buffer Pool Size of Total RAM 这个panel 显示 No data。

2.问题分析

我们先看一下Buffer Pool Size of Total RAM 这个panel的计算公式:

(label_replace(mysql_global_variables_innodb_buffer_pool_sizeinstance="$host", "nodename", "$1", "instance", "(.*):.*") * 100) / on(nodename) (label_replace(node_memory_MemTotal_bytes, "nodename", "$1", "instance", "(.*):.*"))

#这个公式中用到了 mysql_global_variables_innodb_buffer_pool_size 和 node_memory_MemTotal_bytes 两个收集值

分别获取mysql监控和node监控所有的收集值
curl http://127.0.0.1:9104/metrics >mysql_metrics.txt
curl 127.0.0.1:9100/metrics >node_metrics.txt

 检查发现mysql_global_variables_innodb_buffer_pool_size 这个值是mysql监控收集的,但是node_memory_MemTotal_bytes 这个值是node监控收集的

以上是关于Buffer Pool Size of Total RAM No data的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL碰到The total number of locks exceeds the lock table size 问题解决记录

navicat for mysql 导入sql大文件报out of memory 错误,怎么解决?

navicat for mysql 导入.sql 大文件 报out of memory 错误,怎么解决

navicat for mysql 导入.sql 大文件 报out of memory 错误,怎么解决?

innodb_buffer_pool_size 配置原则和方式

MySQL参数-innodb_buffer_pool_chunk_size