cold-search插件是阿里云Elasticsearch团队自研的冷热隔离插件。在日志场景中,对于自研海量OpenStore存储集群,该插件能够针对共享计算节点,提供节点上冷热索引的CPU资源和内存隔离熔断的限制能力。本文介绍如何使用cold-search插件。
前提条件
创建阿里云Elasticsearch实例,版本为7.10.0且内核版本为1.6.0及以上。具体操作,请参见
创建阿里云Elasticsearch实例。
说明 cold-search插件默认已安装,不可卸载,您可在插件配置页面查看。
使用限制
使用cold-search插件时,您的Elasticsearch实例需要满足以下条件:
- 实例版本:7.10.0
- 内核版本:1.6.0及以上
- 实例配置:数据节点规格族选择冷热共享计算型
操作步骤
- 登录目标阿里云Elasticsearch实例的Kibana控制台,根据页面提示进入Kibana主页。
登录Kibana控制台的具体操作,请参见
登录Kibana控制台。
说明 本文以阿里云Elasticsearch 7.10.0版本为例,其他版本操作可能略有差别,请以实际界面为准。
- 单击右上角的Dev tools。
- 在Console页签,执行如下命令,配置CPU限制。
PUT _cluster/settings
{
"persistent":{
"apack.cold_search.cpu.cold_max":0.7,
"apack.cold_search.cpu.normal_share":1024,
"apack.cold_search.cpu.cold_share":2
}
}
参数 |
类型 |
默认值 |
说明 |
apack.cold_search.cpu.cold_max |
小数 |
0.7 |
冷查询在单节点上每秒CPU使用量的最高比例。
例如,节点的CPU规格为4核,apack.cold_search.cpu.cold_max值为0.5,则在该节点上,冷查询每秒最多使用的CPU资源为:(4核*0.5)=2核。
|
apack.cold_search.cpu.normal_share |
整数 |
100 |
其他查询与冷查询占用的CPU资源比例关系,最小值为2。该配置的触发条件为节点CPU使用率达到100%。
例如,apack.cold_search.cpu.normal_share的值为90,apack.cold_search.cpu.cold_share的值为10,那么其他查询与冷查询占用的CPU资源的比例为90:10。此时如果其他查询的CPU使用率为50%,冷查询的CPU使用率为40%,虽然冷查询比例已经超过了设定值,但由于两者加起来没有达到100%,因此不会触发熔断。
|
apack.cold_search.cpu.cold_share |
整数 |
10 |
- 执行如下命令,配置内存限制。
PUT _cluster/settings
{
"persistent":{
"apack.cold_search.mem.cold_max_percent": "80%",
"apack.cold_search.mem.cold_delay_interval":"5s",
"apack.cold_search.mem.jvm_max_percent": "90%",
"apack.cold_search.mem.delay_interval": "2s"
}
}
参数 |
类型 |
默认值 |
说明 |
apack.cold_search.mem.cold_max_percent |
百分数或容量单位 |
80% |
冷查询占用内存的熔断阈值。 |
apack.cold_search.mem.cold_delay_interval |
时间类型 |
5s |
冷查询占用内存超过阈值后,开始熔断的时间间隔。 |
apack.cold_search.mem.jvm_max_percent |
百分数或容量单位 |
90% |
所有查询占用内存的熔断阈值。 |
apack.cold_search.mem.delay_interval |
时间类型 |
2s |
所有查询占用内存超过阈值后,开始熔断的时间间隔。 |
说明 超过CPU及内存限制后,Elasticsearch会对冷查询进行熔断。熔断时,系统不会为冷查询分配更多的CPU和内存资源,因此仅会造成冷查询请求执行速度变慢,不会造成冷查询请求失败。