CPU流控
背景信息
CPU流控可以基于当前节点的CPU占用率实现流量控制。
CPU流控通过配置节点的最大CPU占用率来避免流量冲击下节点掉线风险,可以基于流量阈值预估CPU占用率最大值。当节点CPU超过配置阈值后,CPU流控会丢弃节点请求,达到保护集群的目的,节点内流量和elasticsearch monitor类接口不会被流控。
在开启或关闭CPU流控时,执行命令涉及的配置参数如下:
配置名 |
类型 |
说明 |
---|---|---|
flowcontrol.cpu.enabled |
Boolean |
CPU流控开关,开启会影响节点访问性能。 取值范围:true、false 默认值:false |
flowcontrol.cpu.percent_limit |
Integer |
节点最大CPU占用率配置。 取值范围:0~100 默认值:90 |
flowcontrol.cpu.allow_path |
List |
CPU流控白名单,CPU流控基于请求path做流控,配置allow_path白名单,请求将不参与CPU流控。 默认值为空。 单path最大支持32个字符,最多支持配置10个请求路径,支持通配符配置。例如,配置“auto_*/_search”将不限制所有的auto_前缀索引的search请求。 |
flowcontrol.cpu.*.filter_path |
String |
配置需要进行CPU流控的访问Path,控制单个请求Path的CPU使用阈值。 最大长度32。 例如: "flowcontrol.cpu.search.filter_path": "/index/_search", "flowcontrol.cpu.search.limit": 60, 默认值 "**", 表示匹配所有的路径。如果只配置了单路径limit,没有配置filter_path,表示除去白名单外的所有path都影响。白名单规则优先于单路径规则,如果一个路径同时配置了allow_path和filter_path, 此请求路径会被允许。 例如同时配置了filter_path和allow_path,其中filter_path="abc/_search", allow_path="abc/_search",此种情况abc/_search将不被流控。 |
flowcontrol.cpu.*.limit |
Integer |
配置请求Path的CPU阈值,CPU超过阈值触发流控。 取值范围:0~100 默认值:90 |
操作步骤
- 登录云搜索服务管理控制台。
- 在“集群管理”页面选择目标集群,单击操作列“Kibana”,登录Kibana界面。
- 单击左侧导航栏的“Dev Tools”,执行命令开启或关闭CPU流控。
- 开启CPU流控
PUT /_cluster/settings { "persistent": { "flowcontrol.cpu.enabled": true, "flowcontrol.cpu.percent_limit": 80, "flowcontrol.cpu.allow_path": ["index/_search"] } }
- 关闭CPU流控
PUT /_cluster/settings { "persistent": { "flowcontrol.cpu.enabled": false } }
- 开启CPU流控