前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MYSQL Monitor 变化着看,批判着看

MYSQL Monitor 变化着看,批判着看

作者头像
AustinDatabases
发布2019-06-21 16:36:17
8010
发布2019-06-21 16:36:17
举报

最大我们都要对以前自己做出的事情和选择付出代价。经常看文章说,选择比努力重要,我不置可否。如果选择比努力重要,那运动员去选择就好了,为什么要不断的去联系,去让自己的身体承受那些负荷甚至是病痛,伤痛。那有些人说,努力重要,really,如果你只有1.52米高,你要去和姚明争高低,就算努力到月球,我只能祝愿你,“”心想事成“”。

所以看到任何事情比其他事情重要的文章,我都看看就好,因为看看就好。说道MYSQL 的监控,也有两种看法,一种是做的越细致越好,另一种是只要监控到关键点即可。其实想想极端的做法都是不可取的,如果做到越细致越好,那估计你的MSYQL 别的工作都不用做了,各种性能的监控参数,以及业务监控的参数就能让你的MYSQL 因为监控而损坏大半的性能,因为监控性能而消耗大部分性能的事情,可笑吗?

翻过来,监控的项目很少,只关注在常用的一些参数,而不针对自己的使用环境做一些针对化的监控,那监控或许也只能换一个叫法,“摆设”。

下面的文字,就带大家看看这些“摆设”,让我们先从以下四个参数来展开

query throughput

query execution performance ,

connections

buffer pool usage

在MYSQL 里面最常用的就是要获知 MYSQL 运行当中已经运行的 Questions ,执行的命令 insert , update , delete , select

曾经听到多个人在对MYSQL 的 querstions 和 com_select, com_insert,com_delete,com_update , 一个误解,这里的说一下,

questions != com_select+com_insert+com_update+com_delete

我上面图中,30 != 7 + 0 + 0 + 0 , 那questions 等于所有com_%的总和。

这里就有一个想法,如果你要知道所有com_%的总和,例如你还想知道

例如com_flush, com_create_db, 之类的数据,换句话你想知道是所有的在DB执行的数据,那questions 的确可以帮助你,但如果你如果通过上面那个错误的公式,去通过 questions - com_select = dml ,那绝对是错误的,我见过很多人这么做,甚至我很早以前也是这样认为的。

原因是不求甚解,不自己做尝试,看了很多篇文字,就认为那么多人都这样说,那就是对的,其实......

所以监控上就得对 com_select com_insert com_delete, com_update 来一个详细的分析展示,而不是一个questions 就可以解决问题。

说完上面一个问题,下面的说说慢查询,好似常年不变的 PT 工具 + slow_log 是一个解决慢查询问题的经典办法。实际上,MYSQL 一致在变化,而这样的方法看慢查询,虽然不能说过时了,但至少我们有其他的方法可以去查看,慢查询,并且实时性要更强。

events_statements_summary_by_digest

我们可以通过上面的东西,来获悉曾经执行过的语句的时间信息

甚至我们可以通过某些语句的汇总,来获得某个数据库中总的执行的语句所消耗的总的时间。

所以,一项监控或技术用久了,习惯了,练耳不闻窗外事,虽然还是能完成好某些工作,但这样下去早晚会大概率的被淘汰。

同时我们也可以通过Innodb_row_lock_waits , 来获得一些INNODB 获得行锁需要等待时间的信息,有利于我们快速发现一些问题。

其实我们在客户连接数据库也是一个重点的指标,例如当前的连接数和最大的连接数之间的关系,达到多少就要报警,而不是不闻不问。另外像 Connection_errors_max_connections, aborted_connects 这两个

如果在一个短时间开始大量的增加,这绝对是要立即报警的,具体增加的频率和数量,要看你当前的系统的指标,很可能你是一个繁忙的系统,那指标或许就要稍微提高一些,所以一些直接问题MYSQL 监控具体指标的人,我有时候不知道怎么回答你,只能用一个含糊的或已知变化不大的参数来“打发你”。

最后,我们的看看 buffer_pool ,buffer pool 在innodb中是十分重要的,所以监控buffer pool 是非常重要的一件事情。

那么怎么看实际上innodb_buffer_pool 的使用率,这是一个查看你当前内存使用率好坏的一个指标。例如利用

Innodb_buffer_pool_pages_total Innodb_buffer_pool_pages_free,来计算内存的使用率通过innodb buffer pool wait free 来查看是不是内存紧张等等都是有效的方法。
监控的指标是变化的,监控的方法是变化的,业务是变化,变化无处不在,从现在看以前或许的批判着看,同时从现在看未来,也的变化着看。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档