# MySQL实战:监控

在这里插入图片描述

# 监控指标

性能类指标

名称 说明
QPS 数据库每秒处理的请求数量
TPS 数据库每秒处理的事务数量
并发数 数据库实例当前并行处理的会话数量
连接数 连接到数据库会话的数量
缓存命中率 Innodb的缓存命中率

功能类指标

名称 说明
可用性 数据库是否正常对外提供服务
阻塞 当前是否有阻塞的会话
死锁 当前事务是否产生了死锁
慢查询 实时慢查询监控
主从延迟 数据库主从延迟时间
主从状态 数据库主从复制链路是否正常

# QPS

各种请求的数量

show global status like 'com%'

各种请求的和

show global status like 'queries'

qps = (queries2- queries1) / 时间间隔

# TPS

show global status where variable_name in ('con_insert', 'com_delete', 'com_update')

tc = com_insert + com_delete + com_update

tps = (tc2 - tc1) / (time2 - time1)

# 数据库并发数

show global status like 'threads_running'

# 数据库连接数

show global status like 'threads_connected'

报警阈值:threads_connected / max_connections > 0.8

# Innodb缓存命中率

show global status like 'innodb_buffer_pool_read%'

(Innodb_buffer_pool_read_requests - Innodb_buffer_pool_reads) / (Innodb_buffer_pool_read_requests) *100%

Innodb_buffer_pool_read_requests:从缓存池中读取的次数 Innodb_buffer_pool_reads:从物理磁盘读取的次数

# 数据库可用性

周期性的连接数据库并执行select @@version

# 监控慢查询

通过慢查询日志监控

# 死锁

查看最近一次死锁信息

SHOW ENGINE INNODB STATUS

使用pt-deadlock-logger工具