配置自治限流
操作场景
自治限流是通过预先设置CPU阈值、可允许最大活跃连接数等前置条件,当相关条件满足时系统会对会话进行自动流控,在突发流量过高、异常读写等业务场景下保障核心业务的可用性。
版本限制
- RDS for PostgreSQL 15及以上的所有版本。
- RDS for PostgreSQL 14版本,对应的小版本为14.8及以上版本。
- RDS for PostgreSQL 13版本,对应的小版本为13.11及以上版本。
- RDS for PostgreSQL 12版本,对应的小版本为12.15及以上版本。
- RDS for PostgreSQL 11版本,对应的小版本为11.20及以上版本。
功能限制
- 自治限流仅会kill SELECT类型的会话。
- 触发限流的条件是在限流时间内满足限流策略。
- kill会话的条件是在触发限流时,会话在限流范围内且超出最大活跃连接数。
- kill会话时会分批次进行,每个批次最多kill 10条会话,优先kill执行时间最长的会话。
- 限流历史保存在主节点上,进行主备倒换、规格变更、小版本升级等任务后,自治限流历史可能会被清空。
- 在限流时间窗内,一次限流完成后,下次限流需要重新满足限流策略(CPU利用率、活跃会话数、持续时间)后,才会再次触发限流。
操作步骤
- 登录RDS管理控制台。
- 单击管理控制台左上角的
,选择区域。 - 在“实例管理”页面,选择目标实例,单击实例名称,进入实例的“基本信息”页签。
- 在左侧导航栏选择“智能DBA助手 > SQL分析与优化”。
- 选择“ 自治限流”。
“自治限流”模块为付费的高级版智能DBA助手增值功能,请您先升级智能DBA助手。
- 在弹框中,了解增值功能以及费用说明,单击“升级”。 图1 升级智能DBA助手
- 升级运维包后,单击“自治限流”,设置限流范围、限流时间、限流策略,当相关条件满足时会自动流控,保证核心业务运行稳定。 图2 自治限流
表1 自治限流参数 参数项
说明
数据库名
指定需要限流的数据库名称。不填数据库名默认对全部数据库限流。
用户名
指定需要限流的用户名。
限流时间窗
允许触发限流的时间段。
每次最大限流时长
每次自动触发限流后,限流持续的最长时间。例:设置最大限流时长为1分钟,限流策略为“活跃会话数≥2000”,允许限流的最大活跃会话数为1000。在时间窗内满足限流条件后,触发限流,触发后10s最大活跃连接数降低到1000以下,则限流提前结束;若1分钟最大活跃连接数仍未降低到1000以下,本次限流也会结束。
CPU利用率
实例的CPU利用率阈值(≥70%)
活跃会话数
活跃会话数条件阈值,范围为1~5000。
阈值复合判断条件
进行CPU、活跃会话的复合判断条件,可以单独使用CPU利用率或者活跃会话数进行限流检测,也可以同时配置CPU利用率和活跃会话数进行判断,两者的关系为“且”或者“或”。
持续时间(分钟)
满足CPU利用率和活跃会话数条件的会话持续一定时间后触发自治限流。可以自定义事件持续时间,支持5、15或30(单位:分钟)。
例如:实例的CPU利用率在90%以上并且活跃会话数在1000以上,该事件持续30分钟触发自治限流。
允许限流的最大活跃连接数
触发自治限流后,当连接数下降到该配置项的值以下,会停止限流。取值范围为1~5000。
- 单击“确定”。
当触发限流后,在自治限流页面会生成一条限流记录。并且支持查看历史限流记录。