Elasticsearch之集群调优建议

  • 系统设置要到位

1.遵照官方建议设置所有的系统参数
2.参见文档 “Set up Elasticsearch >> Important System Configuration”

  • ES设置尽量简洁

1.elasticsearch.yml中尽量只写必备参数,其他可以通过api动态设置的参数通过api来设定
2.参见文档 “Set up Elasticsearch >> Important Elasticsearch Configuration”
3.随着ES的版本升级,很多网络流传的配置参数已经不再支持,因此不要随便复制别人的集群配置参数

  • elasticsearch.yml中建议设定的基本参数

  - cluster.name
  - node.name
  - node.master/node.data/node.ingest
  - network.host 建议显示指定为内网ip,不要偷懒设定为 0.0.0.0
  - discovery.zen.ping.unicast.hosts 设定集群其他节点地址
  - discovery.zen.minimum_master_nodes 一般设定为 2
  - path.data/path.log
  - 除上述参数外再根据需要增加其他静态配置参数

  • 动态设定的参数有 transient 和 persistent 两种设置,前者在集群重启后会丢失,后者不会,但两种设定都会覆盖elasticsearch.yml 中的配置
    cluster-setting
  • 关于JVM 设定

  1. 不要超过31GB
  2. 预留一半的内存给操作系统,用来做文件的缓存
  3. 具体大小根据该 node 需要存储的数据量来估算,为了保证性能,在内存和数据量间有一个建议比例
      - 搜索类项目的比例建议在1 :16 以内
      - 日志类项目的比例建议在1:48 ~ 1:96
  4. 假设总数据量大小为1TB,3个node,1个副本,那么每个node要存储数据量为2TB/3 = 666GB,即700GB左右,做20%的预留空间,每个node要存储大约850GB数据量
      - 如果是搜索类的项目,每个node内存的大小为850GB/16=53GB,大于31GB
      31*16=496,即每个node最多存储496GB数据,所以需要至少5个node
      - 如果是日志类型项目,每个node内存的大小为850GB/48=18GB,因此3个节点足够
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容