MySQL数据库监控指标有哪些?PIGOSS BSM 来详解

MySQL 是现而今最流行的开源关系型数据库服务器。因为它具有灵活性和可扩展性、高安全性、易用性以及无缝处理大型数据集的能力。

MySQL关键性能指标

连接情况

缓冲池使用情况

每秒查询数

每秒事务数

连接情况

监控客户端连接情况相当重要,因为一旦可用连接耗尽,新的客户端连接就会遭到拒绝。

名称 描述 SQL查询语句
Threads_created MySQL已创建的总连接数 show global status like "Threads_created";
Threads_connected MySQL已连接的连接数 show global status like "Threads_connected";
Threads_cached MySQL当前缓存的连接数 show global status like "Threads_cached";
Threads_running MySQL当前活跃的连接数 show global status like "Threads_running";

缓冲池使用情况

通常情况下,Innodb_buffer_pool_reads的值越小越好,因为它表示从磁盘中读取数据页到缓冲池中的次数越少,缓冲池的命中率越高,查询性能和系统响应时间也会更好。如果Innodb_buffer_pool_reads的值较大,则可能表示缓冲池的大小不足或者热数据没有被缓存到缓冲池中,需要增加缓冲池的大小或者优化MySQL的查询语句,以提高缓存命中率和减少磁盘I/O的次数。

缓冲池利用率=(Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free) /  Innodb_buffer_pool_pages_total

名称 描述 SQL查询语句
Innodb_buffer_pool_pages_total 缓冲池的页总数目。单位是page。 show global status like "Innodb_buffer_pool_pages_total";
Innodb_buffer_pool_pages_free 剩余的页数目。单位是page。 show global status like "Innodb_buffer_pool_pages_free";
Innodb_buffer_pool_reads 从磁盘读取数据页到缓冲池的次数 show global status like "Innodb_buffer_pool_reads";
Innodb_buffer_pool_read_requests

从缓冲池中读取满足数据请求的次数

show global status like "Innodb_buffer_pool_read_requests";

QPS

Query Per Second,每秒请求查询次数,即数据库每秒执行的SQL数量。

QPS作用:表达和衡量当前系统的负载。

Questions:MySQL从上一次启动到当前客户端发送给MySQL的查询数量,不包括存储过程内部的查询。它不统计COM_PING,COM_STATISTICS,COM_STMT_PREPARE,COM_STMT_CLOSE,COM_STMT_RESET数量,但它会把show命令计算到指标当中。

Queries:MySQL从上一次启动到当前客户端发送给MySQL的查询数量,包括存储过程内部的查询,它不统计COM_PING和COM_STATISTICS两个命令。

Com_select:MySQL从上一次启动到当前所执行的查询语句总数量。

由上可见,在数据库中执行show命令会使questions值加1,而com_select则不记录,而且对于数据库的监控,经常会用到show命令,所以在用questions方式计算时,数据其实是被污染的。
而且questions的值在设置环境变量的时候,也是一直在增长的,而com_select的值在此过程中,并不增长。所以在使用question方式进行计算时,人为拉高了qps的结果,相对来说,使用com_select此种方式来计算qps,相对比较帖近真实情况一些。

Questions方式计算QPS

questions = show global status like "questions";

uptimes = show global status like "uptime";

公式1:QPS = questions/uptimes

公式2:QPS = (new_questions - old_questions)/seconds (单位时间,单位:秒)

Com_select方式计算QPS

com_select = show global status like "Com_select";

QPS = (new_com_select - old_com_select)/seconds(单位时间,单位:秒)

TPS

Transcantion Per Second,每秒事务数,即数据库每秒执行的事务数。

基于com_commit、com_rollback计算TPS

Com_commit:提交次数,MySQL从上一次启动到当前所执行的提交语句总数量,不会记录隐式提交的事务

Com_rollback:回滚次数,MySQL从上一次启动到当前所执行的回退语句总数量

commit = show global status like "Com_commit";

rollback = show global status like "Com_rollback";

公式1:TPS=(com_commit + com_rollback)/uptime

公式2:TPS= (new_commit - old_commit + new_rollback - old_rollback)/seconds(单位时间,单位:秒)

基于com_insert、com_delete、com_update计算TPS

Com_update:MySQL从上一次启动到当前所执行的更新语句总数量

Com_delete:MySQL从上一次启动到当前所执行的删除语句总数量

Com_insert:MySQL从上一次启动到当前所执行的插入语句总数量

指定间隔时间内取值两次,然后新指标减去老指标后三个指标相加再除以间隔时间得出间隔时间内每秒平均TPS。

作为任何数据库管理策略不可或缺的一部分,MySQL监控用于在检测到性能漏洞时立即提醒管理员,并生成报告以分析此类挫折背后的原因。具有复杂IT结构的组织倾向于依赖MySQL监控工具,如PIGOSS BSM运维监控工具,这些工具非常专注于帮助用户从性能角度了解其数据库系统的运行方式,并深入到各个组件以实现异常检测和故障管理。

你可能感兴趣的:(数据库,mysql)