绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
MYSQL Monitor 变化着看,批判着看
2019-05-03 06:12:19

大我们都要对以前自己做出的事情和选择付出代价。经常看文章说,选择比努力重要,我不置可否。如果选择比努力重要,那运动员去选择就好了,为什么要不断的去联系,去让自己的身体承受那些负荷甚至是病痛,伤痛。那有些人说,努力重要,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 来查看是不是内存紧张等等都是

有效的方法。


监控的指标是变化的,监控的方法是变化的,业务是变化,变化无处

不在,从现在看以前或许的批判着看,同时从现在看未来,也的变化

着看。








分享好友

分享这个小栈给你的朋友们,一起进步吧。

数据库杂货铺
创建时间:2021-12-10 09:57:47
分享数据库管理,运维,源代码 ,业界感受, 吐槽
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • liuaustin
    栈主

小栈成员

查看更多
  • miemieMIA
  • 578154454
  • ylfxml
戳我,来吐槽~