如何对Elasticsearch的索引template进行优化

68次阅读
没有评论

共计 604 个字符,预计需要花费 2 分钟才能阅读完成。

背景

经过在生产环境的大规模使用之后发现如果使用 Elasticsearch 6.x 的一些默认配置的话,尤其是 number_of_shards 默认为 5,如果索引按照天生成,日积月累到几万后,集群就会频繁 GC,最终导致 ES 的某些 REST 接口不可用。

最新的 ES 7.x 已经将 number_of_shards 默认为 1 了,所以如果你们的生产环境如果全面升级到了 7.x 的话则可以忽略本篇博客,但是如果因为各种原因你们的 es 集群还在使用 6.x 的话,那么就要做一些优化了。

优化

我们打开 Kibana 的面板后,来到 Management-> Dev Tools, 然后执行下面的 PUT 请求,

PUT /_template/xxlog
{
    "order": 1,
    "version": 1,
    "index_patterns": ["xx-*"],
    "settings": {
      "index": {
        "number_of_shards": "1",
        "number_of_replicas": "1"
      }
    },
    "mappings": {},
    "aliases": {}}

上面的 xxlog 为该 template 的名字,你可以根据你们的业务需求自定义一个,"xx-*" 这个也很重要,你们索引的前缀 prefix,这个也要根据实际情况做一些改动。

上面的关键是 "number_of_shards": "1" 这一行,因为对于 number_of_replicas 来说,不管是 6.x 还是 7.x 都已经默认为 1 了。

正文完
 
sharp097
版权声明:本站原创文章,由 sharp097 2021-02-28发表,共计604字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)