文章目录
生产环境部署建议
系统设置要到位
遵照官方建议设置所有的系统参数
参见文档 “setup Elasticsearch =》Important System Configuration”
ES设置尽量简洁
- elasticsearch.yml中尽量只写必备的参数,其他可以通过api动态设置的参数都通过api来设定
- 参见文档"Setup Elasticsearch-> Important Elasticsearch Confiquration"
- 随着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_masternodes一般设定为2
- path.data/path.log
除上述参数外再根据需要增加其他的静态配置参数
动态设定的参数有transient和persistent两种设置,前者在集群重启后会丢失,后者不会,但两种设定都会覆盖elasticsearch.yml中的配置
关于JVM内存设定
- 不要超过31GB
- 预留一半内存给操作系统,用来做文件缓存
- 具体大小根据该node要存储的数据量来估算,为了保证性能,在内存和数据量间有一个建议的比例
----类项目的比例建议在1:16以内
----日志类项目的比例建议在1:48~1:96 - 假设总数据量大小为1TB , 3个node , 1个副本,那么每个node要存储的数据量为2TB/3=666GB ,即700GB左右,做20%的预留空间,每个node要存储大约850GB的数据
----如果是搜索类项目,每个node内存大小为850GB/16=53GB ,大于31GB.31*16=496 ,即每个node最多存储496GB数据,所以需要至少5个node
----如果是日志类型