云搜索服务 CSS-配置OpenSearch集群存算分离:提升冷数据的查询性能

时间:2024-10-08 18:50:01

提升冷数据的查询性能

仅2023年02月后创建的Elasticsearch 7.6.2、Elasticsearch 7.10.2和OpenSearch 1.3.6集群支持提升冷数据的查询性能。

在Kibana的Discover页面首次查询冷数据时,由于此时无任何缓存,导致所有数据均需要从OBS上获取,当命中的数据较多时,需要耗费大量的时间从OBS上获取对应的时间字段以及文件元数据。如果将这一部分数据直接缓存在本地,即可大幅提升查询性能,解决Discover页面首次查询慢的问题。 云搜索服务 就是通过冷数据的本地缓存,实现冷数据的查询性能提升。本地缓存配置是预置的,用户可以基于业务场景修改配置,也可以查询、了解本地缓存信息。

  1. 修改冷数据的本地缓存配置。
    表10 本地缓存配置项说明

    配置项

    类型

    scope

    是否可动态修改

    说明

    low_cost.local_cache.max.capacity

    Integer

    node

    节点上,能够打开的冷数据缓存的最大数量。(每个shard对应一个缓存对象)

    取值范围:10~5000

    默认值:500

    说明:
    • 当堆内存使用率一直很高时,可以尝试降低该值。
    • 当查询冷数据本地缓存的相关统计指标中load_overflow_count数值一直持续快速增加时,建议调大该值。

    index.low_cost.local_cache.threshold

    Integer

    index

    启用冷数据本地缓存的阈值。

    • 当date类型字段的占比小于此值时,启用冷数据本地缓存date类型字段。否则不使用。
    • 如果当前索引的date类型字段占据当前索引的绝大部分数据量,则不建议使用此功能。

    单位:%

    取值范围:0~100

    默认值:50

    index.low_cost.local_cache.evict_time

    字符串

    index

    冷数据的本地缓存的淘汰时间,当缓存时间大于该值,缓存将被删除。根据index.frozen_date(冻结成功的时间)判定,当索引无index.frozen_date时,则根据索引创建时间判定。

    单位:天

    取值范围:1d~365d

    默认值:30d

    说明:

    建议根据磁盘用量调整淘汰时长,节省磁盘空间。

    • 执行如下命令,修改“low_cost.local_cache.max.capacity”
      PUT _cluster/settings
       {
         "persistent": {
           "low_cost.local_cache.max.capacity":1000
         }
       }
    • 执行如下命令,修改“index.low_cost.local_cache.threshold”
      PUT es_write_pref2-00000000021/_settings
       {
       "index.low_cost.local_cache.threshold":20
       }
    • 执行如下命令,修改“index.low_cost.local_cache.evict_time”
      PUT es_write_pref2-00000000021/_settings
       {
       "index.low_cost.local_cache.evict_time":"7d"
       }
  2. 查询冷数据的本地缓存信息。
    • 执行如下命令,查询所有节点中冷数据的本地缓存相关指标。
      GET /_frozen_stats/local_cache
    • 执行如下命令,查询指定节点中冷数据的本地缓存相关指标。
      GET /_frozen_stats/local_cache/{nodeId}

      “{nodeId}”为节点ID。

    返回结果如下:

    {
       "_nodes" : {
         "total" : 1,
         "successful" : 1,
         "failed" : 0
       },
       "cluster_name" : "elasticsearch",
       "nodes" : {
         "6by3lPy1R3m55Dcq3liK8Q" : {
           "name" : "node-1",
           "transport_address" : "127.0.0.1:9300",
           "host" : "127.0.0.1",
           "ip" : "127.0.0.1",
           "local_cache" : {
             "get_stats" : {
               "get_total_count" : 562,                            //从冷数据本地缓存查询数据的总次数
               "get_hit_count" : 562,                              //从冷数据本地缓存查询数据命中的次数
               "get_miss_count" : 0,                               //从冷数据本地缓存查询数据未命中的次数
               "get_total_ns" : 43849200,                          //从冷数据本地缓存查询数据的总时长
               "get_avg_ns" : 78023                                //从冷数据本地缓存查询数据的平均时长
             },
             "load_stats" : {
               "load_count" : 2,                                    //加载冷数据本地缓存的次数
               "load_total_ms" : 29,                                //加载冷数据本地缓存的总时长
               "load_avg_ms" : 14,                                  //加载冷数据本地缓存的平均时长
               "load_fail_count" : 0,                               //加载冷数据本地缓存的失败次数
               "load_overflow_count" : 0                            //加载冷数据本地缓存时超过缓存池的次数
             },
             "reload_stats" : {
               "reload_count" : 0,                                  //重新生成冷数据本地缓存的次数
               "reload_total_ms" : 0,                               //重新生成冷数据本地缓存的总时长
               "reload_avg_ms" : 0,                                 //重新生成冷数据本地缓存的平均时长
               "reload_fail_count" : 0                              //重新生成冷数据本地缓存的失败次数
             },
             "init_stats" : {
               "init_count" : 0,                                     //初始化冷数据本地缓存的次数
               "init_total_ms" : 0,                                  //初始化冷数据本地缓存的总时长
               "init_avg_ms" : 0,                                    //初始化冷数据本地缓存的平均时长
               "init_fail_count" : 0                                 //初始化冷数据本地缓存的失败次数
             }
           }
         }
       }
     }
support.huaweicloud.com/usermanual-css/css_01_0180.html