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和內存資源,因此僅會造成冷查詢請求執行速度變慢,不會造成冷查詢請求失敗。