Skip to content

Instantly share code, notes, and snippets.

@yangl
Last active August 8, 2019 08:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yangl/522b5e0235ce172687ddc095ca002cdf to your computer and use it in GitHub Desktop.
Save yangl/522b5e0235ce172687ddc095ca002cdf to your computer and use it in GitHub Desktop.
ES配置参考

部署

部署时,考虑的三个点:

  • 后勤方面:硬件,部署策略建议
  • 更适合生产环境的配置更改
  • 部署后的考虑:安全,最大限度的索引性能,备份

硬件

ES为重cpu、重io、重内存应用场景。性能更好的cpu能提升查询效率,更多的内存、更快的磁盘io对于写入能带来更好的提升。

内存

内存建议64Gb,尽量保持有一半以上的内存留给文件缓存。堆内存经过实际场景压测,5.4版本堆内存建议26-30G之间,7.1版本建议30G

CPUs

尽量选择多核CPU

硬盘

SSD>raid 0 HHD>HHD 不要使用NAS! 按照顺丰的情况,尽量使用ssd,并且使用直通盘的形式挂载。

网络

  • 建议使用1GbE,10GbE
  • 尽量避免跨越多个数据中心

总结

尽量选择中高配的机器,避免高配机器,减少逻辑复杂度

java 虚拟机

尽量使用最新版本的jdk

重要配置

基本配置 cluster.name: elasticsearch_production

node.name: elasticsearch_005_data

path.data: /path/to/data1,/path/to/data2
# Path to log files:
path.logs: /path/to/logs

#network 
network.host: 192.168.1.1
transport.tcp.port: 9300

#node role
node.master: true    (default: true)
node.data: false     (default: true)

#restful port
http.enabled: true   (default: true)
http.port: 9200      (default: none)

#discovery config
discovery.zen.ping.unicast.hosts: ["host1", "host2:port"]
discovery.zen.ping_timeout: 10s
discovery.zen.fd.ping_timeout: 120s
discovery.zen.fd.ping_retries: 5
discovery.zen.fd.ping_interval: 20s

最小主节点 防止脑裂的配置。配置建议为:(master候选节点/2)+1 修改方式有两种:

discovery.zen.minimum_master_nodes: 2

PUT /_cluster/settings
{
    "persistent" : {
        "discovery.zen.minimum_master_nodes" : 2
    }
}

集群恢复配置

gateway.recove_after_nodes:8
gateway.expected_nodes: 10
gateway.recover_after_time: 5m	

防止同一个分片的主副本存在同一个物理机上

cluster.routing.allocation.same_shard.host: true

内存lock bootstrap.memory_lock: true

jvm重要配置

#内存大小
-Xms30g
-Xmx30g
#gc回收器
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=75
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+DisableExplicitGC
#heapdump配置
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/log

系统配置

关闭swapping

vim sysctl:
vm.swappiness=1

mmap最大映射数量

vim /etc/sysctl.conf
vm.max_map_count=262144

文件描述符

*       soft    nproc    65536
*       hard    nproc    65536
*       soft    nofile   524288
*       hard    nofile   524288
*       soft    memlock  unlimited
*       hard    memlock  unlimited
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment