云搜索服务 CSS-配置Elasticsearch集群存算分离:提升冷数据的查询性能
提升冷数据的查询性能
仅2023年02月后创建的Elasticsearch 7.6.2、Elasticsearch 7.10.2和OpenSearch 1.3.6集群支持提升冷数据的查询性能。
在Kibana的Discover页面首次查询冷数据时,由于此时无任何缓存,导致所有数据均需要从OBS上获取,当命中的数据较多时,需要耗费大量的时间从OBS上获取对应的时间字段以及文件元数据。如果将这一部分数据直接缓存在本地,即可大幅提升查询性能,解决Discover页面首次查询慢的问题。 云搜索服务 就是通过冷数据的本地缓存,实现冷数据的查询性能提升。本地缓存配置是预置的,用户可以基于业务场景修改配置,也可以查询、了解本地缓存信息。
- 修改冷数据的本地缓存配置。
表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" }
- 查询冷数据的本地缓存信息。
- 执行如下命令,查询所有节点中冷数据的本地缓存相关指标。
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 //初始化冷数据本地缓存的失败次数 } } } } }
- 执行如下命令,查询所有节点中冷数据的本地缓存相关指标。
- MapReduce服务_什么是存算分离_如何配置MRS集群存算分离
- GaussDB存算分离_华为云hcso是什么意思_高斯数据库存算分离_华为云
- CSS是什么_云搜索服务_CSS功能
- AI训练加速存储_高性能数据存储_AI数据存储内存不足怎么办
- MRS优势_什么是MRS_MRS功能
- GaussDB集群_GaussDB数据库集群_高斯数据库集群_华为云
- Redis修改开源协议_新版Redis不再“开源”_Redis协议变更
- 大数据分析是什么_使用MapReduce_创建MRS服务
- 大数据应用范围有哪些_大数据技术与应用要学习什么课程
- GaussDB集群搭建_SQL数据库是谁发明的_高斯数据库集群搭建_华为云