
# 配置自治限流
#### 操作场景
自治限流是通过预先设置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利用率、活跃会话数、持续时间）后，才会再次触发限流。
 
#### 操作步骤
1. [登录RDS管理控制台](https://console.huaweicloud.com/rds/#/rds/management/list)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002606863935.png)，选择区域。
3. 在"实例管理"页面，选择目标实例，单击实例名称，进入实例的"基本信息"页签。
4. 在左侧导航栏选择"智能DBA助手 \> SQL分析与优化"。
5. 选择" 自治限流"。 
   ![](https://support.huaweicloud.com/usermanual-rds-pg/public_sys-resources/note_3.0-zh-cn.png)
   "自治限流"模块为付费的高级版智能DBA助手增值功能，请您先升级智能DBA助手。
   
   
6. 在弹框中，了解增值功能以及费用说明，单击"升级"。 
   图1升级智能DBA助手   
   ![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002716131017.png "点击放大")
   
   
7. 升级运维包后，单击"自治限流"，设置限流范围、限流时间、限流策略，当相关条件满足时会自动流控，保证核心业务运行稳定。 
   图2自治限流   
   ![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002715971145.png "点击放大")
   表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。                                                                                                              |
      
   
   
8. 单击"确定"。 
   当触发限流后，在自治限流页面会生成一条限流记录。并且支持查看历史限流记录。
   
   
 
