MySQL监控和预警
https://blog.csdn.net/zhaowenbo168/article/details/53219860
1.摘要
本人从事Java Web开发,在项目开发中会用到很多中间件,本文主要介绍MySQL监控的一点心得和使用,公司DBA也有相应的监控,但是我们的业务比较重要,想做一个备份监控,对MySQL监控需要做监控和预警,首先需要有数据,数据采集之前要知道自己需要监控哪些指标,有可能监控之前有些指标没有想到,在做的过程中可能思路就会逐渐清晰,监控MySQL的作用:(1)定时监控MySQL的健康状况,能够及时发现问题;(2)根据一些指标的历史趋势图能够对系统做优化。
2.监控指标
(1)QPS (每秒查询量)、TPS(每秒事物量)
(2)增删改查的分量
(3)连接数、正在使用的连接数、最大连接数
(4)慢查询
(5)流量统计
(6)Innodb、MyISAM缓冲池
3.监控结构
MySQL的监控分为两部分,一部分是定时器,每两分钟(时间间隔根据自己的需求定义)负责采集数据和监控的预警(针对QPS、连接数、流量等指标超过阈值给出短信和邮件预警),另一部分是监控结果的展示,在前端页面展示方便查看和数据的对比。
4.数据采集和显示
可以使用两种SQL语句查询MySQL的状态变量的值,结果一样,查询方式:(1)SHOW GLOBAL STATUS;(2)SELECT * FROM information_schema.SESSION_STATUS;状态变量的详解参见:http://blog.csdn.net/zhaowenbo168/article/details/53199585
4.1 QPS、TPS
MySQL的状态变量里有个Questions(已经发送给服务器的查询的个数)变量,Questions的值是增量的,我们是每隔两分钟采集一个点,QPS=(Questions2-Questions1)/Time,TPS=((Com_commit2 - Com_commit1)+ (Com_rollback2 - Com_rollback1))/Time; 监控的QPS和TPS的量,如果超出阈值(具体的阈值根据机器的性能和业务数据量来预估),则给预警,另外可以根据历史趋势图,如果发现QPS的TPS的值逐渐增高,可能是业务量增大了或者有可能有人攻击你的服务器(例如采用查询一些非热点数据,直接透过缓存,达到攻击的目的),根据历史的趋势图可以提前做好DB的扩容和优化等。
4.2 增删改查的分量
select的量=(Com_select2 - Com_select1)/Time,insert、update和delete同理,如果要计算读和写的量,writes = insert + update + delete;
4.3 连接数、正在使用的连接数、最大连接数
连接数=Threads_connected,正在使用的连接数=Threads_running,最大连接数使用命令SHOW VARIABLES LIKE 'max_connections'查询,如果正在使用的连接数远远小于实际的连接数,可能是你的服务连接数配置过大,如果连接数太大,可能会对你的DB会造成一定的压力,另外需要监控连接数,例如当连接数达到最大连接数的60%给出预警,可能是业务量的增大造成连接数的增加,能够提前感知DB的状态,保证服务的稳定。
4.4 慢查询
慢查询=Slow_queries,具体的慢查询的SQL语句需要查日志;MySQL默认超过10s的查询记录的为慢查询,可以自定义慢查询的时间(例如0.5s)等,监控慢查询的数量,如果出现,及时查看那些SQL语句引起的慢查询,然后可能需要对这些SQL或者服务做优化;
4.5 流量统计
发送的流量=Bytes_sent2 - Bytes_sent2 ,接收的流量=Bytes_received2 - Bytes_received1,如果DB Server的服务器上只有DB服务,发送流量和接收流量之和就是服务器的流量情况的,监控流量是否在网卡的可承受范围之内,以便服务的稳定,如果超出阈值,提前预警和优化(比如网卡的流量等)。
4.6 Innodb、MyISAM缓冲池
一个数据库实例中可能有的表用Innodb存储引擎,有的表用MyISAM存储引擎,MySQL 默认的存储引擎 是InnoDB,它使用了一片称为缓冲池的内存区域,用于缓存数据表与索引的数据。缓冲池指标属于资源指标,而非工作指标,前者更多地用于调查(而非检测)性能问题。如果数据库性能开始下滑,而磁盘 I/O 在不断攀升,扩大缓冲池往往能带来性能回升。可以通过SHOW TABLE STATUS from database_name where Name='table_name';查询表的存储引擎是哪个。
Innodb缓冲池使用率=(Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free)/Innodb_buffer_pool_pages_total,buffer_pool_pages是缓冲池的页数,默认每页为 16 KiB,或 16,384 字节,你可以使用:SHOW VARIABLES LIKE "innodb_page_size";查看,Innodb缓冲池的大小=Innodb_buffer_pool_pages_total*innodb_page_size。
MyISAM缓冲池使用率=Key_blocks_used/(Key_blocks_unused +Key_blocks_used) 。默认MyISAM缓冲池的大小为16MB,可以使用SHOW VARIABLES LIKE '%key_buffer_size%';查看。
本文仅供给参考,还有诸多不足,只是站在自己的角度的一些看法。
MySQL监控和预警的更多相关文章
- MySQL监控、性能分析——工具篇
https://blog.csdn.net/leamonjxl/article/details/6431444 MySQL越来越被更多企业接受,随着企业发展,MySQL存储数据日益膨胀,MySQL的性 ...
- MySQL监控、性能分析——工具篇(转载)
MySQL越来越被更多企业接受,随着企业发展,MySQL存储数据日益膨胀,MySQL的性能分析.监控预警.容量扩展议题越来越多.“工欲善其事,必先利其器”,那么我们如何在进行MySQL性能分析.监控预 ...
- 如何在Zabbix上安装MySQL监控插件PMP
PMP,全称是Percona Monitoring Plugins,是Percona公司为MySQL监控写的插件.支持Nagios,Cacti.从PMP 1.1开始,支持Zabbix. 下面,看看如何 ...
- DB监控-mysql监控
Mysql监控属于DB监控的模块之一,包括采集.展示.监控告警.本文主要介绍Mysql监控的主要指标和采集方法. Mysql监控和Redis监控的逻辑类似,可参考文章<Redis监控>. ...
- 分布式监控系统Zabbix-3.0.3-完整安装记录(2)-添加mysql监控
Zabbix3.0 Server以后就自带了MySQL插件来监控mysql数据库的模板,只需要配置好agent客户端,然后在web端给主机增加模板就行了. 以下是公司线上的zabbix3.0环境下添加 ...
- 详解 Spotlight on MySQL监控MySQL服务器
前一章详解了Spotlight on Unix 监控Linux服务器 ,今天再来看看Spotlight on MySQL怎么监控MySQL服务器. 注:http://www.cnblogs.com/J ...
- 京东MySQL监控之Zabbix优化、自动化
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://wangwei007.blog.51cto.com/68019/1833332 随 ...
- Spotlight on MySQL监控MySQL服务器
第一步: 下载并安装mysql-connector-3.5x Spotlight on MySQL 连接mysql必须使用mysql-connector-3.5x,5.3.2版本我试了下不行,有兴趣可 ...
- mysql监控管理工具--innotop
https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/innotop/innotop-1.9. ...
随机推荐
- BZOJ 2726: [SDOI2012]任务安排 [斜率优化DP 二分 提前计算代价]
2726: [SDOI2012]任务安排 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 868 Solved: 236[Submit][Status ...
- Elasticsearch快速入门案例
写在前面的话:读书破万卷,编码如有神-------------------------------------------------------------------- 参考内容: <Ela ...
- tyvj 1031 热浪 最短路
热浪 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://tyvj.cn/p/1031 Description 德克萨斯纯朴的民眾们这个夏天正在遭受 ...
- Codeforces Round #297 (Div. 2)E. Anya and Cubes 折半搜索
Codeforces Round #297 (Div. 2)E. Anya and Cubes Time Limit: 2 Sec Memory Limit: 512 MBSubmit: xxx ...
- vue中路由返回上一个页面,恢复到上一个页面的滚动位置
第一步:路由文件的配置(对你所需要的vue文件进行保存缓存标志的添加) import Vue from 'vue' import Router from 'vue-router' import Hel ...
- Bandwagon Host – 64M内存 1.5G硬盘 100G流量 年3.99美金
BandwagonHost(习惯称作搬瓦工),属于IT7公司旗下的产品,搬瓦工虽然是新起的商家, 但是有实力雄厚的公司背景在一定程度上还是可以放心使用的. 很多用户在选择这款低价VPS的时候都担心是否 ...
- MVC通过UIHint和自定义视图显示RadioButtonList
在Product类中有一个显示删除状态的属性DelFlag,在编辑视图页,对于所有的删除状态以RadioButtonList显示出来,如果RadioButtonList选项的value值与当前mode ...
- MVC三级联动无刷新
本篇实现有关客户.订单和产品的无刷新三级联动,先看最终效果: 没有选择时,后2个Select状态为禁用: 当选择第1个Select,第2个Select可供选择,第3个Select依旧禁用: 当选择第2 ...
- SpringBoot 使用小技巧合集
原文:https://my.oschina.net/xiedeshou/blog/1926191 设置网站图标 原来我们在使用tomcat开发时,设置网站图片时,即icon图标时,一般都是直接替换ro ...
- Appium+python自动化5-Appium Inspector
前言 appium Inspector从入门到放弃!反正你都打开了,那就看下为什么要放弃吧! Appium Inspector是appium自带的一个元素定位工具,上一篇介绍了如何使用uiaut ...