在使用OpenStore存储集群的日志场景中,冷热共享计算节点上的冷查询可能占用大量CPU和内存资源,影响热数据查询的性能。通过cold-search插件,可以对冷查询的CPU和内存资源进行限制和熔断,保障热数据查询的稳定性。
使用须知
cold-search插件为系统默认插件,默认已安装且不可卸载,可在插件配置页面查看。使用该插件需要同时满足以下条件:
实例版本为7.10.0,内核版本为1.6.0及以上。
数据节点规格族选择冷热共享计算型。
配置CPU限制
执行以下命令,配置冷查询的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核,该值为0.5,则冷查询每秒最多使用的CPU资源为:4核*0.5=2核。 |
apack.cold_search.cpu.normal_share | 整数 | 100 | 其他查询占用的CPU资源权重,最小值为2。与cold_share配合使用,控制其他查询与冷查询的CPU资源比例。该配置仅在节点CPU使用率达到100%时生效。例如,normal_share为90,cold_share为10,则比例为90:10。如果其他查询CPU使用率为50%,冷查询为40%,由于两者加起来未达到100%,不会触发熔断。 |
apack.cold_search.cpu.cold_share | 整数 | 10 | 冷查询占用的CPU资源权重,最小值为2。与normal_share配合使用,控制其他查询与冷查询的CPU资源比例。 |
配置内存限制
执行以下命令,配置冷查询的内存资源限制。
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和内存资源,因此仅会造成冷查询请求执行速度变慢,不会造成冷查询请求失败。