自治服务

最近更新时间:2024-07-19 11:46:01

我的收藏

功能描述

DBbrain 提供数据库自治服务,支持自动 SQL 限流与异常 SQL KILL 功能。配置并开启自治服务后,当大量 SQL 并发(如缓存穿透、异常调用等导致)或当 SQL 消耗大量 CPU 资源(如性能差 SQL、锁等待时间较长 SQL 等)时,系统会自动检测,当满足触发条件时,自动触发 SQL 限流和异常 SQL KILL 自治任务,解决数据库异常问题,全程无需人工干预。
说明:
目前仅支持云数据库 MySQL、TDSQL-C MySQL。
目前仅支持自动限流与 KILL 功能,更多自治功能后续将逐步支持。
自动限流是限制数据库上执行 SQL 的并发度。当前仅支持基于阈值触发自动限流,基于智能测算类型将在下个版本支持。

配置自治服务

1. 登录 DBbrain 控制台
2. 在左侧导航栏,选择诊断优化
3. 在页面上方选择实例类型、实例 ID,选择自治中心页签。
4. 单击登录,输入账号和密码,单击确定,登录数据库。



5. 在页面右上方单击自治配置
6. 打开自动限流与 KILL 开关,根据界面提示配置参数信息。




配置参数说明如下表所示:
参数项
说明
限流场景
当前仅支持阈值触发
阈值配置
设置阈值触发的条件。
CPU 及会话数:设置 CPU 利用率和数据库会话数的阈值,支持并且或者为判断原则。
触发条件:设置事件持续时长。当满足 CPU 及会话数中设置的阈值及判断原则,且持续发生时间超过设置的时长,则触发自动限流。
如上图所示,CPU 利用率大于60%,或者数据库活跃会话大于15,事件持续大于2分钟,则触发自动限流。
异常 SQL KILL
选择是否开启异常 SQL KILL
开启后,当触发自动限流时,会终止正在执行的异常 SQL。系统默认的异常 SQL 包括占用大量资源或锁等待时间较长的 SQL。
若您需要指定 KILL SQL 的规则,请前往高级规则中设置 KILL 高级配置
可限流时段与并发
可限流时段:可进行自动 SQL 限流的时间段。
允许限流的最大并发度:允许限流的 SQL 最大并发数。限流最大并发度如果设置为0,表示限制所有的 SQL 执行。
限流任务最大持续时间:启动自动限流任务后,限流任务最大持续时间。
若您需要指定限流规则,请前往高级规则中进行限流高级配置
高级规则
高级规则中主要设置对指定关键词进行限流或 KILL 操作,或者对指定关键词进行放行。
若您设置的关键词与 DBbrain 检测的异常量大的 SQL 不匹配,会影响自治任务效果。非必要,不建议开启高级配置。
说明:
各配置项之间是逻辑的关系。
每一个配置项支持设置多个关键词,命中一个即可生效,且关键词大小写敏感。
若您每一项设置多个关键词,命中一个即可生效,且关键词大小写敏感。
限流高级配置:已选择并配置可限流时段与并发
限流关键词:当 DBbrain 检测到指定关键词满足已配置的限流触发条件,则启动限流。
指定放行关键词:当 DBbrain 检测到指定放行关键词满足已配置的限流场景触发条件,则对其放行不启动限流。
KILL高级配置:已勾选是否开启异常 SQL KILL
KILL 关键词:当 DBbrain 检测到的异常 SQL 包含指定的关键词时,将会 KILL 异常 SQL。
指定 KILL USER:当 DBbrain 检测到的异常 SQL 包含指定的 USER 时,将会 KILL 异常 SQL。
指定放行关键词:当 DBbrain 检测到的异常 SQL 包含指定放行关键词时,则对包含关键词的异常 SQL 放行,不进行 KILL 操作。
7. 自治配置页面右侧,单击通知配置,跳转至事件通知页面,仅可对事件发送频率和用户通知进行配置,配置完成后,单击保存。
说明:
自治服务的事件通知采用内置策略模板,内置模板是自治实例首次配置自治策略时自动载入的模板,因此无法修改实例信息,只能修改接收人、通知方式、发送频率。如果用户需要修改实例事件通知策略中的更多内容,可复制内置策略后重新进行自定义。具体操作请参见 事件通知

8. 进入自治配置页面,单击保存,在弹出的对话框中,单击确定。
配置完成后,自动开启自治功能。自治中心页面,数据库自治中开关打开。


查看自治功能

开启自治功能后,可查看近24小时、近3天、近1周或具体时间段的相关信息,包括查看实时性能监控和自治任务监控,查看自治事件详情和自治任务分布情况。

查看实时监控

支持查看性能监控(CPU、Connected Threads、TPS、QPS 性能指标)和自治任务监控(即自动限流和异常 SQL KILL 任务)。
鼠标悬停至具体的自治任务,即可查看任务详情,鼠标悬停至性能监控折线图即可查看具体时间点的所有性能数据。


查看自治事件

支持查看所选时段内自治事件发生的时间、事件触发的条件、当前状态,及自治事件触发的自治任务的类型、状态、时间和详情,并支持终止正在运行的自治事件下的自治任务。



说明:
实时会话页面,也支持查看来源为自治事件的 SQL 限流任务和 KILL 任务。
SQL 限流页签:查看来源为自治事件的 SQL 限流任务。详细介绍及操作请参见 查看 SQL 限流任务
活跃会话页签的 KILL 任务列表:查看类型为自治中心的 KILL 任务。详细介绍及操作请参见 查看持续 KILL 任务

查看自治事件触发的自治任务详情

1. 在自治事件列表,单击展开具体自治事件,查看自治事件触发的自治任务。
2. 在自治任务对应的操作列单击详情,查看自治任务详情。


3. 任务详情页面,查看触发自治任务的原因、任务状态、限流的 SQL 类型、限流关键词、剩余事件、最大并发数、执行时间和已拒绝 SQL 数,及自治任务的会话快照、监控参考、执行的 SQL 记录。




终止正在运行的自治任务

对于状态为运行中的自治事件,用户如果不再需要自治干预或不需要继续执行某种类型的自治任务,均可以进行终止。该终止仅针对正在发生的自治事件,不影响后续自治事件的正常触发。
说明:
终止自治任务操作请先登录数据库,否则仅具有查看权限。
1. 在自治事件列表,找到状态为运行中的自治事件。
2. 通过以下方式终止自治事件或自治任务。
终止自治事件下的所有自治任务:在自治事件对应的操作列单击一键终止


终止自治事件下的某项自治任务:单击展开自治事件,在自治任务对应的操作列单击终止或单击详情后在详情页单击停止任务





查看自治任务分布

当您开启对应的自治事件后,分布图中会根据您选择的时段,自动刷新并统计该范围内触发的自治任务数,以及自治任务占比。