暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MogDB AI4DB:数据库自治运维

原创 MogDB 2024-08-07
418

数据库指标采集、预测与异常监控

可获得性

本特性自MogDB 1.1.0版本开始引入。

特性简介

本特性是MogDB集成的、可以用于数据库指标采集、预测以及异常监控与诊断的AI工具,是DBMind套间中的一个组件。当前通过兼容Prometheus平台来采集数据库系统的指标,提供Prometheus exporter用于采集和加工数据库监控指标。通过监控指标时序数据,可以用来预测未来负载走向,诊断问题,同时还可以进行异常检测等。

客户价值

  • 极大简化运维人员工作,释放大量劳动力,为公司节省成本。
  • 用户可以通过指标采集、监控和预测功能提前感知问题,从而防止数据库发生意外,导致更大的损失。

特性描述

Prometheus是业内非常流行的开源监控系统,同时本身也是一款时序数据库。Prometheus的采集端称之为exporter,用来收集被监控模块的指标项。为了与Prometheus平台完成对接,DBMind分别实现了两款exporter,分别是用来采集数据库指标的openGauss-exporter,以及对采集到的指标进行二次加工的reprocessing-exporter。

本特性支持对采集到的指标进行预测,用户可通过修改配置文件来指定需要进行预测的关键系统指标(KPI),进而便于用户发现指标的走势,及时进行对应的运维操作。如预测内存使用率可以发现内存泄漏、预测磁盘使用情况可以在合适的时候扩容。基于AI的异常检测算法,可以发现指标的走势波动,进而促使用户及时地发现问题。

特性增强

在 MogDB 3.0.0版本中,进行了大幅度改进,兼容Prometheus平台,实现两个exporter用于对接Prometheus.

特性约束

  • 数据库状态正常,并且用户已将数据目录写入环境变量;
  • Python版本要求3.6及以上;
  • 配置Prometheus监控平台,并启动本服务,以便监控数据可被收集。

依赖关系

Prometheus

相关页面

Prometheus-Exporter组件

慢SQL根因分析

可获得性

本特性自MogDB 3.0.0开始引入。

特性简介

慢SQL一直是数据运维中的痛点问题,如何有效诊断慢SQL根因是当前一大难题,工具结合MogDB自身特点融合了现网DBA慢SQL诊断经验,该工具可以支持慢SQL根因15+,能同时按照可能性大小输出多个根因并提供针对性的建议。

客户价值

为客户提供快速可靠的慢SQL发现及根因分析功能,极大简化了运维人员的工作。

特性描述

基于Prometheus数据采集方案,收集慢SQL根因分析需要的数据,包括系统资源信息(cpu usage、memory usage、IO)、负载信息(QPS)、大进程信息(包括外部大进程和数据库定时任务)、慢SQL文本信息、慢SQL开始执行时间和结束执行时间、慢SQL执行计划,临时文件信息等信息,而后,本功能根据AI算法计算最匹配的慢SQL根因,并给出对应的建议和置信度。

特性增强

特性约束

  • 数据库状态正常、客户端能够正常连接;
  • 具备Python3.6+的环境;
  • 其中慢SQL的信息通过WDR报告获取,数据库WDR报告中会标记SQL是否是慢SQL,其相关GUC参数track_stmt_stat_level默认打开,否则需要用户手动打开,一般设置为track_stmt_stat_level=’off, L0’,更高级别对性能会有一定的影响。数据采集部分由Prometheus方案实现,故需要用户配置Prometheus数据采集平台,本功能只专注于算法并从Prometheus中获取指标的序列信息;

依赖关系

相关页面

Slow-Query-Diagnosis:慢SQL根因分析

索引推荐

可获得性

本特性自MogDB 1.1.0开始引入。

特性简介

本功能是一个覆盖多种任务级别和使用场景的数据库智能索引推荐工具,其具备单Query索引推荐功能、虚拟索引功能、workload级别索引推荐功能,可以为用户提供可靠的索引建议。

客户价值

为客户提供快速可靠的索引推荐功能,极大简化了运维人员的工作。

特性描述

单query索引推荐功能支持用户在数据库中直接进行操作,本功能基于查询语句的语义信息和数据库的统计信息,对用户输入的单条查询语句生成推荐的索引;虚拟索引功能支持用户在数据库中直接进行操作,本功能将模拟真实索引的建立,避免真实索引创建所需的时间和空间开销,用户基于虚拟索引,可通过优化器评估该索引对指定查询语句的代价影响;对于workload级别的索引推荐,用户可通过运行数据库外的脚本使用此功能,本功能将包含有多条DML语句的workload作为输入,最终生成一批可对整体workload的执行表现进行优化的索引。

特性增强

特性约束

数据库状态正常、客户端能够正常连接。

当前执行用户下安装有gsql工具,该工具路径已被加入到PATH环境变量中。

具备Python3.6+的环境。

依赖关系

相关页面

Index-advisor:索引推荐

参数调优与诊断

可获得性

本特性自MogDB 1.1.0版本开始引入

特性简介

本功能是一款数据库集成的参数调优工具,通过结合深度强化学习和全局搜索算法等AI技术,实现在无需人工干预的情况下,获取最佳数据库参数配置。本功能不强制与数据库环境部署到一起,支持独立部署,脱离数据库安装环境独立运行。

客户价值

该工具可以在任意场景下,快速给出当前负载的调参配置,减少DBA的人工干预,提升运维效果,满足客户期望。

特性描述

调优程序包含三种运行模式,分别是:

  • recommend: 通过用户指定的用户名等信息登录到数据库环境中,获取当前正在运行的workload特征信息,根据上述特征信息生成参数推荐报告。报告当前数据库中不合理的参数配置和潜在风险等;输出根据当前正在运行的workload行为和特征;输出推荐的参数配置。该模式是秒级的,不涉及数据库的重启操作,其他模式可能需要反复重启数据库
  • train: 通过用户提供的benchmark信息,不断地进行参数修改和benchmark的执行。通过反复的迭代过程,训练强化学习模型,以便用户在后面通过tune模式加载该模型进行调优。
  • tune: 使用优化算法进行数据库参数的调优,当前支持两大类算法,一种是深度强化学习,另一种是全局搜索算法(全局优化算法)。深度强化学习模式要求先运行train模式,生成训练后的调优模型,而使用全局搜索算法则不需要提前进行训练,可以直接进行搜索调优。

特性增强

特性约束

  • 数据库状态正常、客户端能够正常连接、且要求数据库内导入数据,以便调优程序可以执行benchmark测试调优效果。
  • 使用本工具需要指定登录到数据库的用户身份,要求该登录到数据库上的用户具有足够的权限,以便可以获得充足的数据库状态信息。
  • 使用登录到数据库宿主机上的Linux用户,需要将$GAUSSHOME/bin添加到PATH环境变量中,即能够直接运行gsql、gs_guc、gs_ctl等数据库运维工具。
  • Python版本建议为Python3.6及以上,且运行环境中已经安装相应依赖,并能够正常启动调优程序。您可以独立安装一个python3.6+的环境,无需设置到全局环境变量中。不建议使用root用户权限安装本工具,如果以root身份安装本完毕工具,使用其他用户身份运行本工具时,需要确保配置文件有读取权限。
  • 本工具支持以三种模式运行,其中tune和train模式要求用户配置好benchmark运行环境,并导入数据,本工具将会通过迭代运行benchmark来判断修改后的参数是否有性能提升。
  • recommend模式建议在数据库正在执行workload的过程中执行,以便获得更准确的实时workload信息。
  • 本工具默认带有TPC-C、TPC-H、TPC-DS以及sysbench的benchmark运行脚本样例,如果用户使用上述benchmark对数据库系统进行压力测试,则可以对上述配置文件进行适度修改或配置。如果需要适配用户自己的业务场景,需要您参照benchmark目录中的template.py文件编写驱动您自定义benchmark的脚本文件。

依赖关系

相关页面

X-Tuner:参数调优与诊断

慢SQL发现

可获得性

本特性自MogDB 1.1.0版本开始引入。

特性简介

本功能是一个SQL语句执行时间预测工具,通过模板化方法,实现在不获取SQL语句执行计划的前提下,依据语句逻辑相似度与历史执行记录,预测SQL语句的执行时间。

客户价值

  • 工具不需要用户提供SQL执行计划,对数据库性能不会有任何影响。
  • 不同于业内其他算法只局限于OLAP或者OLTP,本工具场景更加广泛。

特性描述

SQLdiag着眼于数据库的历史SQL语句,通过对历史SQL语句的执行表现进行总结归纳,将之再用于推断新的未知业务上。由于短时间内数据库SQL语句执行时长不会有太大的差距,SQLdiag可以从历史数据中检测出与已执行SQL语句相似的语句结果集,并基于SQL向量化技术和模板化方法预测SQL语句执行时长。

特性增强

特性约束

  • 需要保证用户提供的历史日志及待预测负载的格式符合要求,可以使用数据库GUC参数开启收集,也可以通过监控工具采集。
  • 为保证预测准确率,用户提供的历史语句日志应尽可能全面并具有代表性。
  • 按照要求配置python环境。

依赖关系

相关页面

SQLdiag:慢SQL发现

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论