使用TaurusDB配置自治限流
操作场景
在高并发的互联网应用中,当系统遭遇突发流量或异常读写时,可能会导致系统响应变慢,影响用户体验和业务连续性。为了解决上述问题,自治限流通过预先设置CPU阈值、可允许最大活跃连接数等前置条件,当相关条件满足时系统会对会话进行自动流控,从而在突发流量过高、异常读写等业务场景下保障核心业务的可用性。
当前仅支持对主节点设置自治限流,生效中的限流规则可以在SQL限流页面查看。
约束限制
- 只支持主节点设置自治限流,只读节点暂不支持。
- 打开自治限流开关会同步开启SQL限流开关。
- 自动生成SQL限流规则总数不会超过10条,总SQL限流条数限制100条。
- 触发自治限流后生成的限流规则将在到期后自动删除,您也可以在SQL限流页面手动删除。如果修改自治限流配置或关闭自治限流功能,已生成的限流规则将自动被清理。
- 限流规则对已有会话不会限制,仅限制新增会话,自治限流期间并发数仍可能增加。
- 已存在相同关键字的限流规则时,不会自动生成新的限流规则。
- 只会生成SELECT类型的限流规则。
- 自治限流将根据非root账户的会话生成限流规则。
- 备份恢复会清空SQL限流规则和自治限流配置。
操作步骤
- 登录TaurusDB管理控制台。
- 在“实例管理”页面,选择目标实例,单击实例名称,进入实例概览页面。
- 在左侧导航栏选择“智能DBA助手 > 历史诊断”。
- 选择。
- 单击“自治限流”。
- 打开
,开启自治限流开关,配置自治限流参数,以自动限制在高负载情况下的SQL执行,防止系统过载。参数说明请参见表1。
示例:
在限流时间窗15:00-20:00,检测实例指标“CPU利用率 >= 90%”且“活跃会话数 >=20”,且持续5分钟都处于该状态则触发自治限流。
每次限流时间最大5分钟,在限流期间,如果CPU利用率、活跃会话数、持续时间的任一条件不再满足限流策略,将停止限流。
图1 配置示例
表1 自治限流参数 参数项
说明
限流时间窗
选择合适的限流时间段。
每次最大限流时长
在限流时间窗内满足限流策略时,对主节点限流的最大时长,单位是分钟。
超过设置的最大限流时长,会自动退出限流。如果触发条件无变化,则下次间隔1分钟后触发再次限流。
范围:1~1440
CPU利用率
CPU利用率阈值用于判断实例的负载情况,当CPU利用率超过设定值(≥70%)时,结合与活跃会话数的关系(且、或)判断是否触发自治限流。
活跃会话数
活跃会话数条件用于判断实例的并发访问量,当活跃会话数超过设定值时,结合CPU利用率条件判断是否触发自治限流。
范围:1~5000。
持续时间(分钟)
设置持续时间以确保在满足CPU利用率和活跃会话数条件后,经过一定时间的观察期再触发自治限流。可以自定义事件持续时间,支持2~60分钟。
最大并发数
最大并发数用于限制与关键字匹配的SQL语句的并发执行数量,当并发数超过设定值时,超出的SQL语句将被拒绝执行。
范围:1~1000000000。
SQL限流规则
如需保留已有的SQL限流规则,请勾选保留SQL限流规则。
- 单击“确定”。
- 当触发自治限流后,自治限流将自动生成SQL限流规则,您可以在SQL限流页面查看生效中的限流规则。