企业运维训练营之数据库原理与实践—数据库DAS简介和备份上云方案—性能诊断与优化(上)

简介: 企业运维训练营之数据库原理与实践—数据库DAS简介和备份上云方案—性能诊断与优化(上)

一、 性能诊断与优化

 

image.png

 

数据库自治服务(Database Autonomy Service,简称DAS)是一种基于机器学习和专家经验,以实现数据库自感知、自修复、自优化、自运维和自安全的云服务。DAS能够帮助用户消除数据库管理的复杂性及人工操作引发的服务故障,有效保障数据库服务的稳定、安全及高效。

 

目前,该服务已在阿里巴巴集团上线超3年,自动优化了超4200万条SQL,自动回收了近4PB空间,优化了近27TB内存,为数据库治理做出巨大贡献。

 

image.png

 

DAS产品核心理念主要包括数据驱动、机器学习+专家经验、诊断流程闭环、主动/持续进行、全局优化和规模优化等方面。

 

DAS基于机器学习和细粒度监控数据实现了7x24小时异常监测,提供了自动SQL限流、异常快照、自动SQL优化、存储空间自动扩展、计算资源自动扩展等功能。

 

DAS通过异常发现、根因分析等模块进行止损和优化,实现了诊断流程闭环。同时,DAS还实现了无人工参与的自治场景支持,使服务自身具备构建学习能力。

 

依托线上业务场景的积累,DAS沉淀了大量的案例,并用案例作为驱动,加速自我进化,提升自治有效性。

 

数据驱动是指DAS通过对海量实时数据,如性能指标、负载SQL请求日志、运维变更日志等的收集,构建了探测能力,具备了环境态势实时感知、异常实时发现能力。

 

自我决策能力是指DAS通过机器学习及数据库专家经验的深度融合,能够在不同的业务场景下做出决策。

 

自动执行能力是指DAS能够根据自治中心决策,自动进行任务编排并执行。

 

image.png

 

SQL自动限流功能主要应用于以下三个场景:

 

• 流量问题。缓存穿透或异常调用导致某类SQL并发量在短时间内急剧上升的问题。

 

• 数据问题。存在大量订单数据的账号下,相关SQL占用了大量数据库资源的问题。

 

• SQL问题。未创建索引的SQL被大量调用,从而影响正常业务的问题。

 

SQL自动限流的流程主要分为以下几个步骤:

 

• 异常检测。DAS通过机器学习对实例历史性能数据进行离线训练并获得模型,通过对该模型指标数据异常监测,DAS能够及时发现数据库异常,并进行根因分析。

 

• 根因分析。该模块将订阅实例异常事件,并采集异常时会话信息。结合SQL审计中全量SQL及MySQL中的统计信息进行判断,定位实例异常原因。

 

该异常通常分为阻塞性SQL、资源消耗型SQL和流量型SQL三种。资源消耗型SQL并发量较小,但会消耗大量的CPU、IO网络资源。流量型SQL会触发数据库瓶颈,导致KV类查询响应时间异常。

 

• 特征提取。当发现存在需要限流的异常SQL时,DAS会对这些SQL的特征进行精确提取,防止因特征提取错误导致的业务全面受损。

 

在理想的情况下,SQL特征是唯一的。DAS只对识别到的异常SQL进行限流,而不影响其他SQL。

 

• 自动限流。当发现实例中存在消耗型资源SQL或流量型SQL时,DAS会自动提取特征,根据配置对SQL进行限流。

 

• DAS还会进行自动优化、跟踪和回滚。例如,若根因分析模块发现了可以优化的异常SQL时,除发起应急处理外,DAS还会将异常SQL发送到自动优化模块,自动创建索引进行优化。

 

image.png

 

SQL自动限流在DAS自治中心的会话管理页面,用户可以进行开关操作以达到限流的目的。

 

image.png

 

SQL自动限流会自动进行判断并处理相关问题。该实例中,数据库起初正常运行。22:56,活跃会话数飙升超过100,大量全表扫描的SQL不断被提交到数据库中。用户采用Kill操作无法解决,流量基本跌0,企业业务已处于不可服务状态。

 

DAS通过7x24小时异常检测技术,迅速定位到该异常,并自动进行根因分析。定位到该异常SQL,触发限流操作,限制包含上述关键字的SQL允许执行的最大并发数。22:59,企业业务恢复正常。

 

image.png

 

DAS支持SQL诊断功能,用户可以根据SQL诊断得到的索引优化的建议,对实例中的表进行索引的创建,也可以在自治中心中打开创建索引的开关,由DAS自动进行SQL诊断和创建索引。

 

自动创建索引是DAS自动优化功能的一种,其原理在于MySQL内核原生支持的Online DDL。

 

image.png

 

如果有大量的慢SQL被MySQL被检测到,DAS将会在页面展示出具体的问题和需要创建的索引,在某一个时段自动添加索引,以提升服务性能。

 

接下篇:

相关文章
|
缓存 NoSQL Redis
Redis原理—2.单机数据库的实现
本文概述了Redis数据库的核心结构和操作机制。
Redis原理—2.单机数据库的实现
|
SQL 存储 监控
obdiag:一款OceanBase 数据库诊断的利器
本次分享的主题是obdiag:一款 OceanBase 数据库诊断的利器,由蚂蚁集团 OceanBase 技术专家汤庆分享。主要分为四个部分: 1. OceanBase 概述 2. Obdiag 项目价值 3. Obdiag 设计与实现 4. Obdiag 未来规划
595 14
|
SQL 关系型数据库 MySQL
体验使用DAS实现数据库SQL优化,完成任务可得羊羔绒加厚坐垫!
本实验介绍如何通过数据库自治服务DAS对RDS MySQL高可用实例进行SQL优化,包含购买RDS实例并创建数据库、数据导入、生成并优化慢SQL、执行优化后的SQL语句等实验步骤。完成任务,即可领取羊羔绒加厚坐垫,限量500个,先到先得。
686 19
|
缓存 算法 关系型数据库
Mysql(3)—数据库相关概念及工作原理
数据库是一个以某种有组织的方式存储的数据集合。它通常包括一个或多个不同的主题领域或用途的数据表。
1333 5
Mysql(3)—数据库相关概念及工作原理
|
存储 缓存 网络安全
南大通用GBase 8s 数据库 RHAC集群基本原理和搭建步骤
南大通用GBase 8s 数据库 RHAC集群基本原理和搭建步骤
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
433 2
|
监控 关系型数据库 MySQL
如何监控和诊断 MySQL 数据库的性能问题?
【10月更文挑战第28天】监控和诊断MySQL数据库的性能问题是确保数据库高效稳定运行的关键
1612 1
|
SQL 关系型数据库 数据库
SQL数据库:核心原理与应用实践
随着信息技术的飞速发展,数据库管理系统已成为各类组织和企业中不可或缺的核心组件。在众多数据库管理系统中,SQL(结构化查询语言)数据库以其强大的数据管理能力和灵活性,广泛应用于各类业务场景。本文将深入探讨SQL数据库的基本原理、核心特性以及实际应用。一、SQL数据库概述SQL数据库是一种关系型数据库
656 6
|
数据采集 机器学习/深度学习 人工智能
运维人的“福音”?AI 驱动的自动化网络监控到底香不香!
运维人的“福音”?AI 驱动的自动化网络监控到底香不香!
1448 0
|
人工智能 运维 监控
运维安全还能靠“人盯人”?别闹了,聊聊自动化处理的真功夫
运维安全还能靠“人盯人”?别闹了,聊聊自动化处理的真功夫
428 17

热门文章

最新文章