观测器

MySQL性能诊断实践之系统观测工具

发布时间:2022/6/6 16:55:05   
北京中科白癜风医院价格 https://mip.yyk.99.com.cn/fengtai/68389/jianjie.html

本文根据黄炎在年8月3日在现场演讲内容整理而成。

黄炎

爱可生研发总监,深入钻研分布式数据库相关技术,擅长业界相关MySQL中间件产品和开发,以及分布式中间件在企业内部的应用实践。

摘要:今天我带来的分享是系统观测工具,有所关联但不涉及MySQL自身的这样一个话题。

分享大纲:

1.MySQL慢的诊断思路

2.系统观测工具介绍

3.bcc(eBPF脚本集)使用举例

4.eBPF使用方法/限制

今天我带来的分享是系统观测工具,跟MySQL相关,但不是MySQL,选择这个话题最主要的原因是今天4场演讲,刚才是官方的专家来介绍MySQL的新特性,后面还有两位专家,一位是介绍MySQL在真实业务中的大规模应用,还有一位是介绍源码,留给我的空间并不是很多,所以选择了一个跟MySQL有所关联但不涉及MySQL自身的话题。

首先想请问一下大家,如果遇到MySQL慢的话大家的第一印象是什么,MySQL数据库如果性能不行的情况下,大家的处理手法是怎样?

我咨询了一些同行,得到了以下反馈,第一反应是再试一次,第二个反应是优化一下SQL,第三个反应是我们调大bufferpool,然后开始换硬件了,换一下SSD,然后实在不行了我们找个搜索引擎问一下说“MySQL慢怎么办”。

如果大家用的是国内的搜索引擎的话,搜索引擎会推荐某某知道或者某某乎,推荐一些MySQL调优经验,调大参数A,调低参数,诸如此类,类似的网站能告诉你MySQL慢怎么办。

我们来分析一下这些现象背后隐藏的意义:

如果大家再试一次能够成功的话,意味着你可能碰到了不可复现的外界因素的影响,导致MySQL会慢。

如果优化SQL能解决,就意味着SQL的执行复杂度远远大于它的需求复杂度。

如果调大bufferpool能解决,就意味着MySQL碰到了自身的某些限制。

如果换SSD能解决,那么意味着服务器资源受到了一定的限制。

如果需要搜索引擎,意味着调优这事已经变成了玄学。

所以今天我想向大家介绍的是四部分内容:

1.MySQL慢的诊断思

2.系统观测工具介绍

3.bcc(eBPF脚本集)使用举例

4.eBPF使用方法/限制

第一部分,我们向大家介绍一下常规的MySQL诊断慢的思路,也是业界的常规思路。

第二部分,是今天介绍的主要命题--系统观测工具的相关内容,我们会大概了解一下什么叫系统观测工具。

第三部分,给大家介绍一个脚本集,这个脚本集是开源的,开箱即用并且可以帮助大家快速诊断MySQL的一些问题,我们直接使用10个例子快速地介绍一下这个脚本集能为我们做到什么。

最后,我们介绍一下eBPF的使用方法和脚本结构。任何一个好用的东西一定有它自己的限制,否则它就太完美了,所以我们也会介绍一下它的限制到底是怎样的。

1.MySQL慢的诊断思路

我们先来看第一个阶段,MySQL慢的诊断思路,一般我们会从三个方向来做:

第一个方向是MySQL内部的观测

第二个方向是外部资源的观测

第三个方向是外部需求的改造

1.1MySQL内部观测

我们来看MySQL内部的观测,常用的观测手段是这样的,从上往下看,第一部分是Processlist,看一下哪个SQL压力不太正常,第二步是explain,解释一下它的执行计划,第三步我们要做Profilling,如果这个SQL能再执行一次的话,就做一个Profilling,然后高级的DBA会直接动用performance_schema,MySQL5.7以后直接动用sys_schema,sys_schema是一个视图,里面有便捷的各类信息,帮助大家来诊断性能。再高级一点,我们会动用innodb_metrics进行一个对引擎的诊断。

除了这些手段以外,大家还提出了一些乱七八糟的手段,我就不列在这了,这些是常规的一个MySQL的内部的状态观测的思路。除了这些以外,MySQL还陆陆续续提供了一些暴露自己状态的方案,但是这些方案并没有在实践中形成套路,原因是学习成本比较高。

1.2外部资源观测

外部资源观测这部分,我引用了一篇文章,这篇文章的

转载请注明:http://www.aideyishus.com/lkgx/502.html

------分隔线----------------------------

热点文章

  • 没有热点文章

推荐文章

  • 没有推荐文章