阿里云数据库CloudDBA的自动运维与智能优化探索

简介: 数据库诊断优化是提高数据库性能和稳定性的关键技术之一。过去几年阿里巴巴集团数据库规模急剧增长并且业务变化越来越快,传统DBA人工加工具的诊断和优化方法在规模如此之大,业务场景如此复杂的今天面临极大的挑战。

数据库诊断优化是提高数据库性能和稳定性的关键技术之一。过去几年阿里巴巴集团数据库规模急剧增长并且业务变化越来越快,传统DBA人工加工具的诊断和优化方法在规模如此之大,业务场景如此复杂的今天面临极大的挑战。于是,自动化、智能化的运维方法和工具的需求就尤为迫切。
阿里巴巴技术团队在这方面不断摸索与尝试,并推出了CloudDBA智能化运维产品,将技术专家的运维智慧和经验凝聚成产品的规则引擎,并利用机器学习学习算法为产品导入智能化模块,从而将大量的数据库的诊断分析和优化工作都自动完成,不仅将DBA从繁冗的工作中解救出来,还能够帮助企业数据库快速上云。
数据库的问题诊断和性能分析对于DBA来说,一直是一件困难的事情。阿里的技术专家讲其原因总结为以下三点:

  • 第一难:获取信息难,问题诊断和性能优化都需要依赖于大量的系统数据,甚至是长期的历史数据,只有基于完备的信息才能给出准确的解法。架构一套完善的数据库监控体系,可不是一件易事,信息收集的全面深入则就更困难了。
  • 第二难:分析信息难,需要多年的经验才能给出准确的解法,也需要多样的场景才能覆盖比较全面的问题类型。经验与场景,一不好传承,二变化较快,三他人理解不易。
  • 第三难:优化手段难,找出问题了,知道怎么办了,也并不意味着就能马上解决问题,甚至有些解法是要深入到数据库引擎层代码优化,这可不是一朝一夕就能做好的。

那么阿里的云数据库是如何解决这些问题的呢?
针对获取信息难的问现状,为了给问题的诊断提供更详尽完整的基础数据,阿里的CloudDBA设计了特有的监控体系。
常见的监控如下图所示,图一是主动拉取监控信息方式,图二是由agent定期上报监控信息形式,一般图二架构也可以是图一基础上增加agent部分。

1
2

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

3

其次,针对数据库问题的分析,在产品中导入智能算法,并形成特有的四大引擎。
阿里云DBA专家多年优化诊断经验就沉淀在CloudDBA的规则引擎系统上,通过规则引擎可轻松实现一种业务场景的问题、条件与解法的研发。并且利用了机器学习能力,自动去抽象各业务的独有特色,可以很方便的实现独立业务和普适规则的匹配,为业务特有场景轻松推荐最优的优化解法。由于阿里云业务的快速发展,目前数据库实例已经超过10万,规则引擎中的优化模型越来越完备,而差异算法可轻松识别新的业务场景,若真出现没有遇见过的“遗漏”,也可最快兼容。
图四就是CloudDBA的四大引擎工作架构图,将专家知识库作为规则引擎工作的原材料,这是阿里云数据库服务海量实例的特有数据。

4

四大引擎解释说明如下:
规则引擎:后台灵活配置各种性能规则,问题、条件和解法,可快速实现新场景的优化方案开发。
性能分析引擎:实时分析潜在性能风险,每种性能都有预先可定制的性能规则。
实时诊断引擎:实时响应用户诊断具体对象问题,每个资源都有一系列定制化的检查规则列表。
SQL优化引擎:基于历史数据,分析SQL、事务、锁等核心DB资源的性能问题,并给出优化改进建议。
同时,在产品化的界面上,数据库的分析及诊断通过完善的报告形式展示给用户,如下图所示:

5

而广大DBA最关注的问题莫过于数据库能否真的实现自动优化,尤其是oow上推出了Oracle 18c自治数据库之后。那么阿里的云数据库能否做到真的自动优化呢?(你可能感兴趣:深入解读Oracle 18c对于DBA的影响及应对措施)
客观上讲,阿里的云数据库目前在自动性能优化的方面仍在不断的探索当中,目前的自动优化功能主要是帮助数据库寻找最佳执行路径,将其优化成更为简洁和高效的视图:

6

也就是将其解析为DBA以外的人员更能理解的视图。包括产品、架构师、开发等。
自动优化的实例如下:

7

随着技术的发展和业务的创新,海量非结构化数据和高并发场景成为企业迫切需要关注的问题,而人工的运维和管理远远不能满足业务的需求,正在这种情况下,数据库系统的运维终将朝着自动化和智能化的方向不断演进。
更多你想了解的技术细节在这里:
今年第七届数据技术嘉年华上,我们有幸邀请到了来自阿里的产品专家胡航丽为大家带来 围绕CloudDBA的主题分享,将围绕CloudDBA产品,解读阿里在数据库的自动化和智能话运维上的探索尝试及成果,分享CloudDBA产品的核心的技术及设计理念。分享主题:CloudDBA-数据库智能优化服务。

原文发布时间为:2017-10-29
本文作者:Roman Trusov
本文来自云栖社区合作伙伴“数据和云”,了解相关信息可以关注“数据和云”微信公众号

相关文章
|
1月前
|
存储 缓存 监控
数据库优化技术:提升性能与效率的关键策略
【10月更文挑战第15天】数据库优化技术:提升性能与效率的关键策略
56 8
|
14天前
|
存储 NoSQL 分布式数据库
微服务架构下的数据库设计与优化策略####
本文深入探讨了在微服务架构下,如何进行高效的数据库设计与优化,以确保系统的可扩展性、低延迟与高并发处理能力。不同于传统单一数据库模式,微服务架构要求更细粒度的服务划分,这对数据库设计提出了新的挑战。本文将从数据库分片、复制、事务管理及性能调优等方面阐述最佳实践,旨在为开发者提供一套系统性的解决方案框架。 ####
|
15天前
|
存储 SQL 数据库
深入浅出后端开发之数据库优化实战
【10月更文挑战第35天】在软件开发的世界里,数据库性能直接关系到应用的响应速度和用户体验。本文将带你了解如何通过合理的索引设计、查询优化以及恰当的数据存储策略来提升数据库性能。我们将一起探索这些技巧背后的原理,并通过实际案例感受优化带来的显著效果。
31 4
|
16天前
|
SQL druid 数据库
如何进行数据库连接池的参数优化?
数据库连接池参数优化包括:1) 确定合适的初始连接数,考虑数据库规模和应用需求;2) 调整最大连接数,依据并发量和资源状况;3) 设置最小空闲连接数,平衡资源利用和响应速度;4) 优化连接超时时间,确保系统响应和资源利用合理;5) 配置连接有效性检测,定期检查连接状态;6) 调整空闲连接回收时间,适应访问模式并配合数据库超时设置。
|
25天前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
32 7
|
21天前
|
SQL 缓存 监控
数据库优化
【10月更文挑战第29天】数据库优化
29 1
|
25天前
|
存储 Oracle 关系型数据库
Oracle数据库优化策略
【10月更文挑战第25天】Oracle数据库优化策略
20 5
|
21天前
|
缓存 关系型数据库 MySQL
如何优化 MySQL 数据库的性能?
【10月更文挑战第28天】
44 1
|
23天前
|
XML Java 数据库连接
如何使用HikariCP连接池来优化数据库连接管理
在Java应用中,高效管理数据库连接是提升性能的关键。本文介绍了如何使用HikariCP连接池来优化数据库连接管理。通过引入依赖、配置参数和获取连接,你可以显著提高系统的响应速度和吞吐量。 示例代码展示了从配置到使用的完整流程,帮助你轻松上手。
80 3
|
23天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
112 1
下一篇
无影云桌面