注意es操作不能使用root用户
1.jdk
2.集群
hosts配置
集群名称 节点名称
threadpool,一般被配置为:cpu core * 3 / 2 + 1
ip jvm 50%
discovery.zen.ping.unicast.hosts:["elsatc1","elsatc2","elsatc3"]
gateway.recover_after_nodes: 3。这个参数可以让es直到有足够的node都上线之后,再开始shard recovery的过程。
还应该设置一个集群中至少要有多少个node,等待那些node的时间:gateway.expected_nodes: 10,gateway.recover_after_time: 5m
discovery.zen.minimum_master_nodes设置为2 避免脑裂
文件路径path.logs: /var/log/elasticsearch
path.data: /var/data/elasticsearch
日志配置
禁止swapping bootstrap.memory_lock: true
/etc/security/limits.conf文件 elasticsearch - nofile 65536
root hard memlock unlimited
虚拟内存
需要提升mmap count的限制:sysctl -w vm.max_map_count=262144
/etc/sysctl.conf,将vm.max_map_count的值修改一下,重启过后,用sysctl vm.max_map_count来验证一下数值是否修改成功
设置线程的数量
可以通过ulimit -u 2048来临时设置,也可以在/etc/security/limits.conf中设置nproc为2048来永久性设置。
root hard nproc 2048
/etc/security/limits.conf中,设置nofile为65536
root hard nofile 65536
GET _nodes/stats/process?filter_path=**.max_file_descriptors
可以用上面这行代码检查每个node上的file descriptor数量
root hard as unlimited
#bigdata soft nofile 65536
bigdata hard nofile 131072
#bigdata soft nproc 2048
bigdata hard nproc 4096
bigdata soft memlock unlimited
bigdata hard memlock unlimited
elasticsearch -d -Epath.conf=/etc/elasticsearch