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及以上
  • 实例配置:数据节点规格族选择冷热共享计算型

操作步骤

  1. 登录目标阿里云Elasticsearch实例的Kibana控制台,根据页面提示进入Kibana主页。
    登录Kibana控制台的具体操作,请参见登录Kibana控制台
    说明 本文以阿里云Elasticsearch 7.10.0版本为例,其他版本操作可能略有差别,请以实际界面为准。
  2. 单击右上角的Dev tools
  3. 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
  4. 执行如下命令,配置内存限制。
    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和内存资源,因此仅会造成冷查询请求执行速度变慢,不会造成冷查询请求失败。