阿里云数据库CloudDBA智慧解决数据库性能优化和问题诊断难题

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 阿里云数据库从9月28号起开始在控制台推出CloudDBA功能,通过客户申请的方式灰度打开,助力客户快速定位诊断问题,优化数据库,帮助客户更高效的使用云数据库。此项功能集相信会成为云数据库的标准配置。

背景


我要申请CloudDBA免费体验




    阿里云数据库为何推出CloudDBA问题诊断(trouble shooting) 性能优化performance tunning) 一直都是数据库领域的专业问题,需要资深DBA的专业技能才能胜任解决,但这样的人才是稀缺的,无法及时满足大部分的企业紧急需求。如果有一款产品能够在大多数情况下,客户借助它非常迅速的找出数据库性能隐患点、排查出问题症结所在,这将无疑协助客户解决燃眉之急,可以大大降低风险和提高效率。

 

     先来分析下为什么数据库问题诊断和性能优化会非常难?

第一难:获取信息难,问题诊断和性能优化都需要依赖于大量的系统数据,甚至是长期的历史数据,只有基于完备的信息才能给出准确的解法。架构一套完善的数据库监控体系,可不是一件易事,信息收集的全面深入则就更困难了。

第二难:分析信息难,需要多年的经验才能给出准确的解法,也需要多样的场景才能覆盖比较全面的问题类型。经验与场景,一不好传承,二变化较快,三他人理解不易。

第三难:优化手段难,找出问题了,知道怎么办了,也并不意味着就能马上解决问题,甚至有些解法是要深入到数据库引擎层代码优化,这可不是一朝一夕就能做好的。


CloudDBA优势

    阿里云数据库CloudDBA 是如何全面解决这三个问题的呢?

 

CloudDBA 完备的性能监控数据

我们当然可以自己搭建监控体系,采用通用开源软件来搭建,但这都意味着投入成本,同时需要对相应的系统比较了解。有些监控系统还无法满足特定业务需要,为了满足场景诉求必须要二次开发,企业之间的大量通用重复劳动是肯定存在的。常见的监控如下图图一和图二,图一是主动拉取监控信息方式,图二是由agent定期上报监控信息形式,一般图二架构也可以是图一基础上增加agent部分。

 

CloudDBA数据库性能优化获取监控数据1CloudDBA数据库性能优化获取监控数据2

 

阿里云数据库监控体系要更深一步,监控内容面更广,这就要得益于多年阿里云数据库团队锲而不舍对技术的追求。同时监控手段更先进,内核团队针对监控特别优化,我们可以获取完整的数据库执行语句详情和数据库全局快照,而对性能影响微乎其微,最多带来2%的性能差异。同时我们利用阿里云大数据技术能力,实现了冷热数据的计算加速,大量历史数据可以快速完成计算工作,可以很快给出分析结果,架构如下图三,增加了从数据库到日志文件的写入部分强调阿里云特有的内核日志优化工作。

 

CloudDBA数据库性能优化获取性能数据3


CloudDBA 智能化学习分析手段

阿里云数据库上运行着各行各业的数据库系统,覆盖了海量业务场景,阿里云DBA专家多年优化诊断经验就沉淀在CloudDBA的规则引擎系统上,通过规则引擎可轻松实现一种业务场景的问题、条件与解法的研发。并且我们利用了机器学习能力,自动去抽象各业务的独有特色,可以很方便的实现独立业务和普适规则的匹配,为业务特有场景轻松推荐最优的优化解法。由于阿里云业务的快速发展,目前数据库实例已经超过10万,规则引擎中的优化模型越来越完备,而差异算法可轻松识别新的业务场景,若真出现没有遇见过的“遗漏”,我们也可最快兼容。

图四就是CloudDBA的四大引擎工作架构图,请注意专家知识库并不是文档,而是规则引擎工作的原材料,这是阿里云数据库服务海量实例的特有数据。


CloudDBA数据库性能优化架构


四大引擎解释说明如下:

规则引擎:后台灵活配置各种性能规则,问题、条件和解法,可快速实现新场景的优化方案开发。

性能分析引擎:实时分析潜在性能风险,每种性能都有预先可定制的性能规则。

实时诊断引擎:实时响应用户诊断具体对象问题,每个资源都有一系列定制化的检查规则列表。

SQL优化引擎:基于历史数据,分析SQL、事务、锁等核心DB资源的性能问题,并给出优化改进建议。

 

CloudDBA 完备的调优与诊断工具

依托于云数据库的强大内核,使得在不影响业务的前提下调优与诊断变得非常简单。云数据库天然的弹性能力,无论升级或者调优对用户影响都极小。阿里云数据库内核团队,长期对技术孜孜不倦的追求,优化了大量的引擎层代码,如热升级、连接池、online DDL优化、热点行优化、在线限流工具、并行复制、秒杀补丁等,这使得调优和解决问题变得相当简单,绝大数情况您只需要一点就可以解决问题。

 

CloudDBA功能概述

CloudDBA根据用户使用场景,从时间维度将功能切分为两大块,分别是一个专注于当下的问题诊断和SQL操作相关功能,另外一个则专注于对历史数据进行全面分析产出系统性能优化方法功能。但这两者也不是严格的根据时间切割,如SQL操作中对语句性能的分析,也会参考过去历史性能数据产出最优的优化分析。

问题诊断功能,描述数据库当下的状态,性能问题、其他问题都会以用户一种可见资源表现出来,如CPU、连接数等。CloudDBA以这类面向用户的资源为起点,分析可能引起该问题的原因,分析逻辑在后台做到可配置,开发新代码会非常的容易,并且分析逻辑会不断扩张。我们将每个用户可见资源(如CPU)定义为一个诊断项,每个诊断项在后台规则引擎中会定义一些检查条目,当诊断时会逐个检查条目进行诊断,没有问题就忽略,有问题就会返回给分析引擎和诊断引擎,这两个引擎会结合历史数据给出结果。

第一版CloudDBA问题诊断集合包括 CPU、空间、慢SQL、锁信息、热点表等基础内容。


CloudDBA获取锁信息


性能优化功能,用户可直接通过SQL操作来检查语句在指定数据库中执行是否会存在性能隐患,用户可以查看执行计划、诊断SQL获取优化结果,当然用户亦可在操作界面直接执行SQL查看结果。

CloudDBA基于内核优化的SQL审计文件,可快速查询指定时间段内的TOP SQL和问题事务。SQL语句可以根据执行次数、执行时间等多种方式排序,事务信息可找出事务包含的语句、事务执行次数、事务执行时间等信息,方便快速定位问题事务。


CloudDBA获取SQL性能


最后可基于时间段快速创建一份数据库诊断报告,报告可下载可分享,包含了数据库的全面分析,内容丰富如涵盖了索引、外键、死锁、连接、事务、SQL语句、空间、只读延迟等信息。一份报告就是一份数据库的快照,它涵盖了问题诊断和性能优化,如下图中展示了一个问题SQL的报告内容:


CloudDBA产出诊断报告


总结

阿里云数据库推出CloudDBA目的是协助客户定位解决问题,并将大量常见问题的诊断优化自动化,利用机器学习、大数据手段快速复制阿里云资深DBA的成熟经验,服务于云上企业。最后我们想说,让用户更高效使用云数据库是我们追求的唯一目标,且我们致力于将CloudDBA打造为云数据库的标准配置,而且我们不断学习不断改进永久迭代。


您可能还喜欢

历年双11实战经历者:我们是如何做数据库性能优化及运维-CloudDBA和天象

CloudDBA初体验:SQL优化建议

目录
相关文章
|
17天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
24天前
|
关系型数据库 分布式数据库 数据库
成都晨云信息技术完成阿里云PolarDB数据库产品生态集成认证
近日,成都晨云信息技术有限责任公司(以下简称晨云信息)与阿里云PolarDB PostgreSQL版数据库产品展开产品集成认证。测试结果表明,晨云信息旗下晨云-站群管理系统(V1.0)与阿里云以下产品:开源云原生数据库PolarDB PostgreSQL版(V11),完全满足产品兼容认证要求,兼容性良好,系统运行稳定。
|
28天前
|
SQL 安全 数据管理
在阿里云数据管理DMS(Data Management Service)中,您可以按照以下步骤来创建和管理数据库
【2月更文挑战第33天】在阿里云数据管理DMS(Data Management Service)中,您可以按照以下步骤来创建和管理数据库
31 7
|
17天前
|
存储 关系型数据库 MySQL
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
JavaScript 关系型数据库 MySQL
6 0
|
5天前
|
SQL 缓存 Java
Java数据库连接池:优化数据库访问性能
【4月更文挑战第16天】本文探讨了Java数据库连接池的重要性和优势,它能减少延迟、提高效率并增强系统的可伸缩性和稳定性。通过选择如Apache DBCP、C3P0或HikariCP等连接池技术,并进行正确配置和集成,开发者可以优化数据库访问性能。此外,批处理、缓存、索引优化和SQL调整也是提升性能的有效手段。掌握数据库连接池的使用是优化Java企业级应用的关键。
|
6天前
|
SQL 关系型数据库 数据库
【后端面经】【数据库与MySQL】SQL优化:如何发现SQL中的问题?
【4月更文挑战第12天】数据库优化涉及硬件升级、操作系统调整、服务器/引擎优化和SQL优化。SQL优化目标是减少磁盘IO和内存/CPU消耗。`EXPLAIN`命令用于检查SQL执行计划,关注`type`、`possible_keys`、`key`、`rows`和`filtered`字段。设计索引时考虑外键、频繁出现在`where`、`order by`和关联查询中的列,以及区分度高的列。大数据表改结构需谨慎,可能需要停机、低峰期变更或新建表。面试中应准备SQL优化案例,如覆盖索引、优化`order by`、`count`和索引提示。优化分页查询时避免大偏移量,可利用上一批的最大ID进行限制。
32 3
|
18天前
|
缓存 监控 数据库
优化数据库查询性能的八大技巧
在今天的互联网时代,数据库是许多应用程序的核心组件之一。优化数据库查询性能是提升应用程序整体性能的关键。本文介绍了八种有效的技巧,帮助开发人员提高数据库查询性能,从而提升应用程序的响应速度和用户体验。
|
18天前
|
弹性计算 关系型数据库 MySQL
阿里云数据库服务器价格表,数据库创建、连接和使用教程
阿里云数据库使用流程包括购买和管理。选择所需数据库类型如MySQL,完成实名认证后购买,配置CPU、内存和存储。确保数据库地域与ECS相同以允许内网连接。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码连接。同一VPC内的ECS需添加至白名单以进行内网通信。参考官方文档进行详细操作。
78 3
|
29天前
|
弹性计算 关系型数据库 MySQL
阿里云MySQL云数据库优惠价格、购买和使用教程分享!
阿里云数据库使用流程包括购买和管理。首先,选购支持MySQL、SQL Server、PostgreSQL等的RDS实例,如选择2核2GB的MySQL,设定地域和可用区。购买后,等待实例创建。接着,创建数据库和账号,设置DB名称、字符集及账号权限。最后,通过DMS登录数据库,填写账号和密码。若ECS在同一地域和VPC内,可内网连接,记得将ECS IP加入白名单。
431 2