【2】【MySQL】常用监控指标及监控方法(转)
【MySQL】常用监控指标及监控方法
对之前生产中使用过的MySQL数据库监控指标做个小结。
指标分类 | 指标名称 | 指标说明 |
性能类指标 | QPS | 数据库每秒处理的请求数量 |
TPS | 数据库每秒处理的事务数量 | |
并发数 | 数据库实例当前并行处理的会话数量 | |
连接数 | 连接到数据库会话的数量 | |
缓存命中率 | 查询命中缓存的比例 | |
高可用指标 | 可用性 | 数据库是否可以正常对外服务 |
阻塞 | 当前阻塞的会话数 | |
慢查询 | 慢查询情况 | |
主从延迟 | 主从延迟时间 | |
主从状态 | 主从链路是否正常 | |
死锁 | 查看死锁信息 |
【QPS指标】
show global status where variable_name in ('Queries', 'uptime');
QPS = (Queries2 -Queries1) / (uptime2 - uptime1)
【TPS指标】
show global status where variable_name in ('com_insert' , 'com_delete' , 'com_update', 'uptime');
事务数TC ≈'com_insert' , 'com_delete' , 'com_update'
TPS ≈ (TC2 -TC1) / (uptime2 - uptime1)
【并发数】
show global status like 'Threads_running';
【连接数】
当前连接数:
show global status like 'Threads_connected';
最大连接数:
show global status like 'max_connections';
生产中配置报警阈值:Threads_connected / max_connections > 0.8
【缓存命中率】
innodb缓冲池查询总数:
show global status like 'innodb_buffer_pool_read_requests';
innodb从磁盘查询数:
show global status like 'innodb_buffer_pool_reads';
生产中配置报警阈值:(innodb_buffer_pool_read_requests - innodb_buffer_pool_reads) / innodb_buffer_pool_read_requests > 0.95
【可用性】
方法1:周期性连接数据库并执行 select @@version;
方法2:mysqladmin -u数据库用户名 -p数据库密码 -h数据库实例IP ping
【阻塞】
MySQL5.7之前:
select b.trx_mysql_thread_id as '被阻塞线程',b.trx_query as '被阻塞SQL',c.trx_mysql_thread_id as '阻塞线程',c.trx_query as '阻塞SQL',(unix_timestamp()-unix_timestamp(c.trx_started)) as '阻塞时间' from information_schema.innodb_lock_waits a join information_schema.innodb_trx b on a.requesting_trx_id=b.trx_id join information_schema.innodb_trx c on a.blocking_trx_id=c.trx.id where(unix_timestamp()-unix_timestamp(c.trx_started))>阻塞秒数
MySQL5.7及之后:
为方便查询阻塞指标,MySQL将2张表join构造了一个view sys.innodb_lock_waits,查询语句得以大大简化。
select waiting_pid as '被阻塞线程',waiting_query as '被阻塞SQL',blocking_pid as '阻塞线程',blocking_query as '阻塞SQL',wait_age as '阻塞时间',sql_kill_blocking_query as '建议操作' from sys.innodb_lock_waits where(unix_timestamp()-unix_timestamp(wait_started))>阻塞秒数
【慢查询】
方法1:开启慢查询日志。my.inf
slow_query_log=on slow_query_log_file=存放目录 long_query_time=0.1秒 log_queries_not_using_indexes=on
注:只对新建连接生效,实时生效使用命令set global 上述配置项。
方法2:
select * from information_schema.'processlist';
【主从延迟】
方法1:
show slave status;
问题:
该方法是基于relaylog的时间与master的时间差值,并不太准,例如大事务时,主从延时已发生,但relaylog还未生成。
方法2:使用Percona的pt-heartbeat工具
- Master后台周期写入:
pt-heartbeat --user=Master用户名 --password=Master密码 --h MasterIP --create-table --database 测试库名 --updatte --daemonize --interval=1
--create-table 在Master上创建心跳监控表heartbeat,通过更新该表知道主从延迟的差距。
--daemonize 后台执行。
--interval=1 默认1秒执行一次。
- Slave后台周期同步读取:
pt-heartbeat --user=Slave用户名 --password=Slave密码 --h SlaveIP --database 库名 --monitor --daemonize --log /slave_lag.log
--monitor参数是持续监测并输出结果
【主从状态】
show slave status;
【死锁】
方法1:查看最近一次死锁信息:
show engine innodb status;
方法2:使用Percona的pt-deadlock-logger工具
1.打开死锁打印全局开关
set global innodb_print_all_deadlocks=on;
2.使用pt-deadlock-logger工具
监控到的死锁结果可以输出到文件、指定表、或者界面打印。
pt-deadlock-logger h=数据库IP,u=数据库用户名,p=数据库密码
输出结果非常详尽:
server:数据库服务器地址,即死锁产生的数据库主机
ts:检测到死锁的时间戳
thread:产生死锁的线程id,这个id和show processlist里面的线程id是一致的
txn_id:innodb的事务ID
txd_time:死锁检查到前,事务执行时间
user:执行transcation的用户名
hostname:客户端主机名
ip:客户端ip
db:发生死锁的DB名
tbl:死锁发生的表名
idx:产生死锁的索引名(在上面这个demo里面, 我们直接走的主键,加的记录锁)
lock_type:锁的类型(记录锁,gap锁,next-key锁)
lock_mode:锁模式(S,X)
wait_hold:是否等着锁释放,一般死锁都是两个wait
victim:该会话是否做了牺牲,终止了执行
query:造成死锁的SQL语句
wwcom123
【MySQL】常用监控指标及监控方法
对之前生产中使用过的MySQL数据库监控指标做个小结。
指标分类 | 指标名称 | 指标说明 |
性能类指标 | QPS | 数据库每秒处理的请求数量 |
TPS | 数据库每秒处理的事务数量 | |
并发数 | 数据库实例当前并行处理的会话数量 | |
连接数 | 连接到数据库会话的数量 | |
缓存命中率 | 查询命中缓存的比例 | |
高可用指标 | 可用性 | 数据库是否可以正常对外服务 |
阻塞 | 当前阻塞的会话数 | |
慢查询 | 慢查询情况 | |
主从延迟 | 主从延迟时间 | |
主从状态 | 主从链路是否正常 | |
死锁 | 查看死锁信息 |
【QPS指标】
show global status where variable_name in ('Queries', 'uptime');
QPS = (Queries2 -Queries1) / (uptime2 - uptime1)
【TPS指标】
show global status where variable_name in ('com_insert' , 'com_delete' , 'com_update', 'uptime');
事务数TC≈'com_insert' , 'com_delete' , 'com_update'
TPS ≈ (TC2 -TC1) / (uptime2 - uptime1)
【并发数】
show global status like 'Threads_running';
【连接数】
当前连接数:
show global status like 'Threads_connected';
最大连接数:
show global status like 'max_connections';
生产中配置报警阈值:Threads_connected / max_connections > 0.8
【缓存命中率】
innodb缓冲池查询总数:
show global status like 'innodb_buffer_pool_read_requests';
innodb从磁盘查询数:
show global status like 'innodb_buffer_pool_reads';
生产中配置报警阈值:(innodb_buffer_pool_read_requests - innodb_buffer_pool_reads) / innodb_buffer_pool_read_requests > 0.95
【可用性】
方法1:周期性连接数据库并执行 select @@version;
方法2:mysqladmin -u数据库用户名 -p数据库密码 -h数据库实例IP ping
【阻塞】
MySQL5.7之前:
select b.trx_mysql_thread_id as '被阻塞线程',b.trx_queryas '被阻塞SQL',c.trx_mysql_thread_idas '阻塞线程',c.trx_queryas '阻塞SQL',(unix_timestamp()-unix_timestamp(c.trx_started)) as '阻塞时间' frominformation_schema.innodb_lock_waits ajoin information_schema.innodb_trx b on a.requesting_trx_id=b.trx_idjoin information_schema.innodb_trx c on a.blocking_trx_id=c.trx.idwhere(unix_timestamp()-unix_timestamp(c.trx_started))>阻塞秒数
MySQL5.7及之后:
为方便查询阻塞指标,MySQL将2张表join构造了一个view sys.innodb_lock_waits,查询语句得以大大简化。
select waiting_pid as '被阻塞线程',waiting_queryas '被阻塞SQL',blocking_pidas '阻塞线程',blocking_queryas '阻塞SQL',wait_ageas '阻塞时间',sql_kill_blocking_queryas '建议操作' fromsys.innodb_lock_waitswhere(unix_timestamp()-unix_timestamp(wait_started))>阻塞秒数
【慢查询】
方法1:开启慢查询日志。my.inf
slow_query_log=on slow_query_log_file=存放目录 long_query_time=0.1秒 log_queries_not_using_indexes=on
注:只对新建连接生效,实时生效使用命令set global 上述配置项。
方法2:
select * from information_schema.'processlist';
【主从延迟】
方法1:
show slave status;
问题:
该方法是基于relaylog的时间与master的时间差值,并不太准,例如大事务时,主从延时已发生,但relaylog还未生成。
方法2:使用Percona的pt-heartbeat工具
- Master后台周期写入:
pt-heartbeat --user=Master用户名 --password=Master密码 --h MasterIP --create-table --database 测试库名 --updatte --daemonize --interval=1
--create-table 在Master上创建心跳监控表heartbeat,通过更新该表知道主从延迟的差距。
--daemonize 后台执行。
--interval=1 默认1秒执行一次。
- Slave后台周期同步读取:
pt-heartbeat --user=Slave用户名 --password=Slave密码 --h SlaveIP --database 库名 --monitor --daemonize --log /slave_lag.log
--monitor参数是持续监测并输出结果
【主从状态】
show slave status;
【死锁】
方法1:查看最近一次死锁信息:
show engine innodb status;
方法2:使用Percona的pt-deadlock-logger工具
1.打开死锁打印全局开关
set global innodb_print_all_deadlocks=on;
2.使用pt-deadlock-logger工具
监控到的死锁结果可以输出到文件、指定表、或者界面打印。
pt-deadlock-logger h=数据库IP,u=数据库用户名,p=数据库密码
输出结果非常详尽:
server:数据库服务器地址,即死锁产生的数据库主机
ts:检测到死锁的时间戳
thread:产生死锁的线程id,这个id和show processlist里面的线程id是一致的
txn_id:innodb的事务ID
txd_time:死锁检查到前,事务执行时间
user:执行transcation的用户名
hostname:客户端主机名
ip:客户端ip
db:发生死锁的DB名
tbl:死锁发生的表名
idx:产生死锁的索引名(在上面这个demo里面, 我们直接走的主键,加的记录锁)
lock_type:锁的类型(记录锁,gap锁,next-key锁)
lock_mode:锁模式(S,X)
wait_hold:是否等着锁释放,一般死锁都是两个wait
victim:该会话是否做了牺牲,终止了执行
query:造成死锁的SQL语句
» 下一篇: 【TOGAF】总体认知
|
|||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
28 | 29 | 30 | 31 | 1 | 2 | 3 | |||
4 | 5 | 6 | 7 | 8 | 9 | 10 | |||
11 | 12 | 13 | 14 | 15 | 16 | 17 | |||
18 | 19 | 20 | 21 | 22 | 23 | 24 | |||
25 | 26 | 27 | 28 | 29 | 30 | 31 | |||
1 | 2 | 3 | 4 | 5 | 6 | 7 |
转载于:https://www.cnblogs.com/gered/p/11359828.html
【2】【MySQL】常用监控指标及监控方法(转)相关推荐
- Java虚拟机监控指标及监控配置
版权声明:本文为博主原创文章,未经博主允许不得转载.欢迎访问我的博客 https://blog.csdn.net/smooth00/article/details/70229653 主要是对Java虚 ...
- MySQL常用监控指标及监控方法
对之前生产中使用过的MySQL数据库监控指标做个小结. 指标分类 指标名称 指标说明 性能类指标 QPS 数据库每秒处理的请求数量 TPS 数据库每秒处理的事务数量 并发数 数据库实例当前并行处理的会 ...
- 【MySQL】常用监控指标及监控方法
对之前生产中使用过的MySQL数据库监控指标做个小结. 指标分类 指标名称 指标说明 性能类指标 QPS 数据库每秒处理的请求数量 TPS 数据库每秒处理的事务数量 并发数 数据库实例当前并行处理的 ...
- mysql监控项目以及指标_【MySQL】常用监控指标及监控方法
对之前生产中使用过的MySQL数据库监控指标做个小结. 指标分类 指标名称 指标说明 性能类指标 QPS 数据库每秒处理的请求数量 TPS 数据库每秒处理的事务数量 并发数 数据库实例当前并行处理的会 ...
- linux 网络监控指标,Linux监控一些指标
进程监控:top 虚拟内存统计:vmstat vmstat 2 1(隔2秒,采样一次) 测试参数 r :表示运行队列,如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高 b :表示阻塞 ...
- centos下mysql常用的三种备份方法_centos下mysql自动备份(全量)
1.新建mysql的备份目录mkdir -p path/mysql/backup/ 2.新建备份脚本vi path/mysql/backup/backup.sh #!/bin/bash backupd ...
- 智能巡检云监控指标的实践
简介:在真实的企业生产中,对研发和运维的同学都会面临一个十分繁复且艰难的问题,就是对指标的监控和告警.具体我枚举一些特定的问题请对号入座,看看在算力爆炸的时代能否通过算力和算法一起解决! 背景介绍 在 ...
- rds for mysql的监控指标_mysql(RDS)常用性能指标监控
Mysql 1.1.1监控指标说明 主要针对SQL耗时.吞吐量(QPS TPS)命中率 锁等待等指标进行监控. 本来运维工具产品有以下参数:(global status里面的状态量) TPS/QPS ...
- ML之ME/LF:机器学习之风控业务中常用模型监控指标CSI(特征稳定性指标)的简介、使用方法、案例应用之详细攻略
ML之ME/LF:机器学习之风控业务中常用模型监控指标CSI(特征稳定性指标)的简介.使用方法.案例应用之详细攻略 目录 CSI(特征稳定性指标)的简介 1.如何计算CSI? 2.CSI值的意义 3. ...
最新文章
- 大数据营销要学会做减法
- ASPNET开源项目
- 阅读A Practical Guide to Support Vector Classification
- 机器思维。一些让我眼前一亮的算法。
- c语言输出七个换行6,多样例输出,如何去掉最后一个回车
- 跟随我在oracle学习php(42)
- 阶段3 1.Mybatis_10.JNDI扩展知识_1 补充-JNDI概述和原理
- 全网最全实现元素(盒子、图片)水平垂直方向居中
- 更改wordpress上传文件大小限制
- 【测试】软件测试之测试用例的设计方法
- C语言实现自制图片文件合成器
- 【X265】Win10环境编译FFmpeg,集成 x264、x265、avs2
- magicmatch java_签名图片一键批量生成 使用Java的Webmagic爬虫实现
- CSDN:借助工具对【本博客访问来源】进行数据图表可视化(网友主要来自欧美和印度等)——记录数据来源截止日期20190811
- 三轴机械手结构化编程5轴伺服项目
- 神州战神笔记本开启/关闭键盘背光灯的方法,control center使用配置,控制风扇转速,减少噪音
- Transformer-XL
- Android使用GoogleMap实现定位及定位回正
- vmware tool下载安装
- java中什么是外层实例,ew MyAsyncTask(); 报错
热门文章
- 微信公众号 服务器配置 token 测试,微信公众号开发:基本配置Token验证简单事件回复...
- 深度:日本老年食品市场规模超过千亿,国内零食巨头旺旺集团已抢先布局!
- Git 安装教程(Windows)
- 预案三板斧之限流大法
- jQuery Tooltip插件
- java图书管理系统,javaSwing图书管理系统学习心得
- P22:Sequential以及搭建网络小实战(Pytorch小土堆学习笔记)
- Duplicated key ‘xxxxxx‘
- excel中常见函数的用法
- display-visibility-opacity
昵称:
退出 订阅评论
[Ctrl+Enter快捷键提交]
【推荐】华为云·云创校园套餐9元起,小天鹅音箱等你来拿
【推荐】零基础轻松玩转云上产品,获壕礼加返百元大礼
· mysql性能监控指标
· mysql常用参数监控
· mysql常用参数监控
· Mysql性能监控
· mysql主要性能监控指标
· 中国联通5G套餐资费公布:确认了一下 是我用不起的价格!
· 病死率几乎100%的传染病,危险就在我们身边,破解方法只此一个
· 对至强处理器不满意 谷歌云服务要转向AMD霄龙处理器
· 杨元庆:联想要做智能化样板,未来帮助其他企业
· 美四家火箭公司争抢军方大单,蓝色起源抗议竞争规则不公
» 更多新闻...