Elasticsearch配置解析

文章目录

  • 简介
  • 系统配置
    • 最大文件描述符
    • 内存锁定限制
    • 虚拟内存映射最大数量
    • 线程数
  • elasticsearch.yml
    • cluster.name
    • node.name
    • path.data & path.log
    • minimum\_master_nodes
    • 集群恢复配置
    • 使用单播发现策略
    • 锁住内存
    • 禁止模糊匹配删除索引
  • jvm.options
    • 堆内存配置
    • 为什么堆内存尽量不要超过32GB?
  • log4j2.properties
  • API动态变更配置

简介

Elasticsearch在官方文档中明确说明大多数默认值都已经做了优化,安装时只需要修改很少的配置即可。在Elasticsearch中很少有“神奇的配置项”,如果你遇到了性能问题,解决方法通常是更好的数据布局或者更多的节点。Elasticsearch有三个配置文件:

  • elasticsearch.yml:Elasticsearch配置文件
  • jvm.options:Elasticsearch对应JVM配置文件
  • log4j2.properties:Elasticsearch日志配置文件

配置文件的默认位置是在$ES_HOME/config目录下。可以通过ES_PATH_CONF环境变量更改config目录的位置:

ES_PATH_CONF=/path/to/my/config

系统配置

在安装Elasticsearch之前,首先需要对节点机器的系统配置进行合理设置(系统配置修改需要切换到root用户执行)。系统配置临时修改可以用ulimit命令,而永久修改则需要在/etc/security/limits.conf文件中增加相应配置。

最大文件描述符

Lucene使用了大量的文件。同时,Elasticsearch在节点和HTTP客户端之间进行通信也使用了大量的套接字。所有这一切都需要足够的文件描述符。Linux发行版本中,每个进程默认只允许1024个文件描述符,这对Elasticsearch节点来说实在是太低了。所以,应该增加节点机器上的文件描述符,设置一个较大的值,如65536:

# 临时修改,只对当前shell有效
ulimit -SHn 65536

# 永久变更需要修改/etc/security/limits.conf文件
vi /etc/security/limits.conf
* hard nof

你可能感兴趣的:(Elasticsearch,Elasticsearch,配置,configuration,解析)