使用冷热隔离插件(cold-search)

更新时间:
复制为 MD 格式

在使用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_share90,cold_share10,则比例为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和内存资源,因此仅会造成冷查询请求执行速度变慢,不会造成冷查询请求失败。