摘要:阿里云CloudDBA主要分为离线分析和在线分析两种功能。帮助用户节省成本,定位问题,分析原因并推荐解决方法。CloudDBA可以做到实时诊断,离线诊断和SQL优化。并且通过MySQL的参数调优,检测参数的不合理或者准备的延迟的情况。
演讲嘉宾简介:
勋臣,阿里云RDS内核团队技术专家,目前阿里云CloudDBA专家系统开发。有着丰富的数据库开发管理和优化的经验。
PPT下载链接:http://click.aliyun.com/m/51146/
以下内容根据演讲嘉宾视频分享以及PPT整理而成。
本次的分享主要围绕以下三个方面:
一、CloudDBA提供了什么
二、核心能力
三、典型实践应用
一、CloudDBA提供了什么
CloudDBA主要提供了两个功能,一个是离线分析,另一个是在线分析。我们知道DBA主要日常工作分为两块,一个是群检,还有就是做线上的响应,比如说我的数据库突然一下应用被卡住了,或者数据库出现性能抖动,这些问题都是需要DBA实时响应的。Oracle包括两个报告,一个是AWR报告,还有一个叫ASH报告,我们从功能上来说和Oracle有些类似。离线的分析主要是AWR报告,然后在线响应是ACTIVE SESS HISTORY。
CloudDBA在云上是SASS化的一块,是基于PaaS平台的增值服务。云上的SASS需要去解决性能的问题,问题的诊断,以及提供一些辅助的工具。云上的数据库跟自建的数据库有一点不同,如果数据库上云了之后,PaaS这层的工作云都帮忙解决了。比如,性能监控,HA等都已经做了。DBA真正要做的是上面这一层,就是怎么让数据库运行的更好,让用户用好数据库。
不管是云上的还是自建的数据库,它本身的成本实际上是看得见的,是很低的。对做DBA的同学来说,从准备到数据库上线花费的精力实际上是有限的。而真正的难点是如何把数据库管理好?因为我们为做产品的平台应用提供支撑,如果用户的使用习惯不好,很容易将我们的数据库搞坏掉,整个业务都会受到影响。所以从下图可以看到我们的数据库会有大量的维护成本,大概大于80%。当然DBA主要是解决应用中的一些问题,节省时间成本。比如说,用户反馈说应用卡住了,对DBA来说需要登录到数据库中,到控制台看动画,看看到底发生了什么?这些动作实际上是很重复,很机械的、如果有CloudDBA,它会有自己的一些小的脚本,比如定位问题,很快的可以输入用户名密码,把状态抓出来,基于状态做一些判断。这种方式是可以的,但是还有更好的解决方式,如果作为一个产品,把这样的行为产品化和服务化,交付出来。在应用卡住的时候,用户只需要点一个按钮,产品就可以把状态抓出来,并且分析出数据库卡住的点,并给出下一步的解决建议。甚至绝大部分场景,命令都会给生成出来,用户直接复制执行就可以了。
二、核心能力
1.实时诊断
我们会把DBA积累的经验产品化,编成程序,录入到资料库中去。将诊断的结果进行输出。我们在日常工作当中会经常发现同样的问题对不同的DBA来说解决的方式也不同。甚至说一位同学在当值班的时候遇到问题,知道怎么解决了,换另一位同学指班没有遇到问题,过了很长的时间再一次发生时大家可能都忘了如何解决这个问题。所以这时就需要将工作经验进行沉淀,产品化,服务化,再把它输入出来。我们把解决问题的方法。技巧,经验录入到资料库(Knowledge Base)中,它就是一个诊断程序,经过不断的录入经验,Knowledge Base会变得越来越丰富。结果格式会分为现象描述,原因描述和相关诊断建议。
2.离线诊断
离线诊断是基于状态,做深层次的分析,挖掘Top SQL,看哪些SQL执行次数最多,最长,消耗时间最长。另外还有事物分析,看事物是否合理,以及SQL Review。因为我们做DBA,如果没有一个很强大的工具去规范开发人员行为的话,这个工具迟早会被拖垮。在早期的时候,出一份规范发给开发人员,要求搜索语句只能按照规范写,否则会出事。但是如果没有一个工具约束和规范,每个开发团队都不可能看每一条规范语句。还有就是死锁的分析。
3.SQL优化
MySQL的优化器当然没有Qracle那么优秀,我们经常会听到它的执行效果不是很好,表的连接顺序不是那么的最优。比如表上面有索引,但是索引失效了,大家都知道索引失效的情况是字段不匹配。我们的工具会帮助我们在字段后面加个函数。比如说有一个交易表,交易表上有一个字段用时间去get,因为目前时间都至少精确到秒。很多开发人员会把日期函数直接加在get上面,等于具体某一天就可以了。但是如果用Oracle或者SQL Server3的数据库是没有问题的,DBA会给你加一个函数索引。但是如果用的是MySQL,而且是5.7之前的版本是没有办法的,真正的写法是大于等于这一天的开始和小于等于这一天的结束,应该是这一天24小时的范围之内都可以识别出来。还有一个是计算代价的重写,我们会到备库动态的采样,比如说一个查询,上面没有索引,带有多个字段,要建一个混合索引,那么这个字段的顺序应该怎么放?我们会到备库中动态采样,看这些列上的数据分布,然后生成最优的字段顺序,最优的索引。因为不可能看几个字段有的所有索引顺序,所以采取动态采样。这一块的内容可以到阿里云的官网搜,有很多非常详细的资料和视频。
三、最佳实践
我们经常遇到用户把规格升级,然后进行压测,发现升级规格后性能反而下降。比如4C32G生级成了8C62G,发现吞吐下降。通过诊断报告TOP SQL定位性能下降原因。发现truncate的执行时间变慢了,为什么变慢?因为表的内存变多了,内存的张页变多了,MySQL truncate之前是要把张页落入文件里面去,利用我们的工具可以很快的定位原因语句,下一步应该把MySQL的 Max present的参数调小,把张块控制在一定的范围里面。
另外一个问题是用户说每隔半小时就会出现压力抖动,查明什么原因。因为用户提出这个问题时,抖动发生的时间是在前几天或者过了几个小时。所以我们会建议用户开启CloudDBA,这样才方便我们跟踪,具体的数据用户在自己的的控制台就可以看到了。如下图是通过TOP SQL得到的诊断报告,知道哪个时间发生了抖动。
连接满了也分为不同的场景。第一种是出现锁了,这种是最常见的,这是把锁会话KILL掉。第二种就是在业务高空的时候执行了ddl的操作,这时也很好解决,我们都会帮助用户定位出来。还有一种是应用程序的连接使用有问题,没有关掉。比如Java的JDBC开了之后没有关掉,这时我们也可以识别出来。我们会建议用户使用连接池,及时的把连接关掉。还有一个,既不是MySQL堆积也不是锁,也正常使用连接池,这时就可能是规格太小,压力太大。如果不能升级规格,那么应用程序就要做限流。
连接满了之后,CloudDBA可以帮助识别并终止会话。
CPU达到100%之后,CloudDBA可以帮忙识别出来,同时进行优化
除了上述的几种场景,阿里还做了一些参数优化。MySQL有非常多的参数,参数的不合理或者准备的延迟都可以通过CloudDBA检测出来。
CloudDBA是一个动态净化的产品,我们是在不断的更新。我们会和阿里云的工单系统联系,他们处理的工单会扭转到我们这边,我们会吸收消化掉一部分,看哪些可以通过程序集成起来,RDBA会嵌在RDS数据库的控制台上面,用户可以免费使用。
相关推荐
从提供的文件内容来看,知识点主要集中在数据库智能管理助手CloudDBA的产品介绍、功能特性、核心技术和最佳实践等方面。 首先,CloudDBA是阿里云推出的一款数据库智能管理助手。它在业务发展中提供了系统支撑,助力...
嵌入式八股文面试题库资料知识宝典-华为的面试试题.zip
训练导控系统设计.pdf
嵌入式八股文面试题库资料知识宝典-网络编程.zip
人脸转正GAN模型的高效压缩.pdf
少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip
少儿编程scratch项目源代码文件案例素材-鸡蛋.zip
嵌入式系统_USB设备枚举与HID通信_CH559单片机USB主机键盘鼠标复合设备控制_基于CH559单片机的USB主机模式设备枚举与键盘鼠标数据收发系统支持复合设备识别与HID
嵌入式八股文面试题库资料知识宝典-linux常见面试题.zip
面向智慧工地的压力机在线数据的预警应用开发.pdf
基于Unity3D的鱼类运动行为可视化研究.pdf
少儿编程scratch项目源代码文件案例素材-霍格沃茨魔法学校.zip
少儿编程scratch项目源代码文件案例素材-金币冲刺.zip
内容概要:本文深入探讨了HarmonyOS编译构建子系统的作用及其技术细节。作为鸿蒙操作系统背后的关键技术之一,编译构建子系统通过GN和Ninja工具实现了高效的源代码到机器代码的转换,确保了系统的稳定性和性能优化。该系统不仅支持多系统版本构建、芯片厂商定制,还具备强大的调试与维护能力。其高效编译速度、灵活性和可扩展性使其在华为设备和其他智能终端中发挥了重要作用。文章还比较了HarmonyOS编译构建子系统与安卓和iOS编译系统的异同,并展望了其未来的发展趋势和技术演进方向。; 适合人群:对操作系统底层技术感兴趣的开发者、工程师和技术爱好者。; 使用场景及目标:①了解HarmonyOS编译构建子系统的基本概念和工作原理;②掌握其在不同设备上的应用和优化策略;③对比HarmonyOS与安卓、iOS编译系统的差异;④探索其未来发展方向和技术演进路径。; 其他说明:本文详细介绍了HarmonyOS编译构建子系统的架构设计、核心功能和实际应用案例,强调了其在万物互联时代的重要性和潜力。阅读时建议重点关注编译构建子系统的独特优势及其对鸿蒙生态系统的深远影响。
嵌入式八股文面试题库资料知识宝典-奇虎360 2015校园招聘C++研发工程师笔试题.zip
嵌入式八股文面试题库资料知识宝典-腾讯2014校园招聘C语言笔试题(附答案).zip
双种群变异策略改进RWCE算法优化换热网络.pdf
内容概要:本文详细介绍了基于瞬时无功功率理论的三电平有源电力滤波器(APF)仿真研究。主要内容涵盖并联型APF的工作原理、三相三电平NPC结构、谐波检测方法(ipiq)、双闭环控制策略(电压外环+电流内环PI控制)以及SVPWM矢量调制技术。仿真结果显示,在APF投入前后,电网电流THD从21.9%降至3.77%,显著提高了电能质量。 适用人群:从事电力系统研究、电力电子技术开发的专业人士,尤其是对有源电力滤波器及其仿真感兴趣的工程师和技术人员。 使用场景及目标:适用于需要解决电力系统中谐波污染和无功补偿问题的研究项目。目标是通过仿真验证APF的有效性和可行性,优化电力系统的电能质量。 其他说明:文中提到的仿真模型涉及多个关键模块,如三相交流电压模块、非线性负载、信号采集模块、LC滤波器模块等,这些模块的设计和协同工作对于实现良好的谐波抑制和无功补偿至关重要。
内容概要:本文探讨了在工业自动化和物联网交汇背景下,构建OPC DA转MQTT网关软件的需求及其具体实现方法。文中详细介绍了如何利用Python编程语言及相关库(如OpenOPC用于读取OPC DA数据,paho-mqtt用于MQTT消息传递),完成从OPC DA数据解析、格式转换到最终通过MQTT协议发布数据的关键步骤。此外,还讨论了针对不良网络环境下数据传输优化措施以及后续测试验证过程。 适合人群:从事工业自动化系统集成、物联网项目开发的技术人员,特别是那些希望提升跨协议数据交换能力的专业人士。 使用场景及目标:适用于需要在不同通信协议间建立高效稳定的数据通道的应用场合,比如制造业生产线监控、远程设备管理等。主要目的是克服传统有线网络限制,实现在不稳定无线网络条件下仍能保持良好性能的数据传输。 其他说明:文中提供了具体的代码片段帮助理解整个流程,并强调了实际部署过程中可能遇到的问题及解决方案。
基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~ 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档