采用zip或tar.gz的二进制包方式安装的ES,需要配置一系列参数,其中重要参数配置如下:

一、 ElasticSearch参数配置

1. data和logs路径配置

如果使用.zip或.tar.gz归档文件,则数据和日志目录是$ES_HOME的子文件夹。如果这些重要的文件夹保留在它们的默认位置,则在将Elasticsearch升级到新版本时,删除它们的风险很高,建议进行修改

path:
logs: /var/log/elasticsearch
data: /var/data/elasticsearch

其中 data目录可以设置多个路径

path:
data:
- /mnt/elasticsearch_1
- /mnt/elasticsearch_2
- /mnt/elasticsearch_3

2. 集群名称

默认的集群名称均为elasticsearch,如有多套集群,则必须修改

cluster.name: syslogs-dev

3. 节点名称

默认情况下,Elasticsearch将使用随机生成的UUID的前七个字符作为节点id。请注意,节点id是持久化的,在节点重启时不会更改,因此默认的节点名称也不会更改。建议配置一个更有意义的名称,它还具有在重新启动节点后持久化的优点。

node.name: syslogs-data-2

或者用主机名(hostname)作为节点名

node.name: prod-data-2

4. network.host

默认情况下,Elasticsearch只绑定到环回地址,例如。127.0.0.1 (::1)。但此配置只能在同一服务器上运行单个节点。为了在其他服务器上形成具有节点的集群,节点需要绑定到一个非环回地址。虽然有许多网络设置,但通常只需要配置network.host

network.host: 192.168.1.10

5. 发现方式设置

Elasticsearch使用名为“Zen discovery”的自定义发现实现节点到节点的集群选择。生产上,应该配置两个重要的发现设置:

discovery.zen.ping.unicast.hosts:
- 192.168.1.10:9300
- 192.168.1.11
- seeds.mydomain.com discovery.zen.minimum_master_nodes: 2

其中,discovery.zen.ping.unicast.hosts 可以设置为ip:port 、ip(使用默认端口时)、域名(可解析的)其中任意一种均可;

discovery.zen.minimum_master_nodes 设置的值建议设置为 (master_eligible_nodes / 2) + 1

6. 堆大小设置

默认情况下,Elasticsearch告诉JVM使用大小为最小和最大1 GB的堆。在 jvm.options  文件里 通过Xms(最小堆大小)和Xmx(最大堆大小)设置的选项。通常设置规则如下:

a)让最小堆大小(Xms)和最大堆大小(Xmx)相等;
b)Elasticsearch可用的堆越多,用于缓存的内存就越多。但是请注意,过多的堆会导致长时间的垃圾收集暂停;
c)将Xmx设置为不超过物理RAM的50%,以确保有足够的物理RAM留给内核文件系统缓存;
d)不要将Xmx设置为JVM用于压缩对象指针的截止值之上(压缩的oops);确切的界限有所不同,但接近32 GB。

例如:

-Xms2g
-Xmx2g

还可以通过环境变量设置堆大小,例如,通过ES_JAVA_OPTS设置这些值

ES_JAVA_OPTS="-Xms2g -Xmx2g" ./bin/elasticsearch
ES_JAVA_OPTS="-Xms4000m -Xmx4000m" ./bin/elasticsearch

7. JVM堆转储路径

可以在 jvm.options 中的  -XX:HeapDumpPath=...进行配置,如果指定一个目录,JVM将根据运行实例的PID为堆转储生成一个文件名。如果指定一个固定的文件名而不是目录,那么当JVM需要对内存不足异常执行堆转储时,该文件必须不存在,否则堆转储将失败。

8. GC 日志

默认情况下,Elasticsearch启用GC日志。这些都是在jvm中配置的。选项并默认为与Elasticsearch日志相同的默认位置。默认配置每64 MB旋转一次日志,最多可以消耗2 GB的磁盘空间

9. temp路径

默认情况下,Elasticsearch使用一个私有临时目录,启动脚本在系统临时目录下创建该临时目录,默认情况为/tmp。但如果最近没有访问/tmp中的文件和目录,系统实用程序将清除这些文件和目录。但是,如果您打算在Linux上长时间运行.tar.gz发行版,那么应该考虑为Elasticsearch创建一个专用的临时目录,而不是在清除旧文件和目录的路径下。这个目录应该设置权限,这样只有运行Elasticsearch的用户才能访问它。然后,在开始Elasticsearch之前,将$ES_TMPDIR环境变量设置为指向它

10. JVM致命错误日志

默认情况下,Elasticsearch配置JVM将致命错误日志写入默认日志目录/var/log/elasticsearch。如果此路径不适合接收日志,则应修改jvm.options 条目-XX:ErrorFile=…

二、 重要的系统参数配置

1 . ulimit设置

建议设置为65535,修改的2种方式如下:

a) 修改/etc/security/limits.conf.文件

elasticsearch  -  nofile  65536

b) root用户直接命令行修改

sudo su
ulimit -n 65536
su elasticsearch

2. 禁用swapping

a) 可以通过关闭swap方式防止使用swap,例如临时运行命令行处理

sudo swapoff -a

要永久禁用它,您需要编辑/etc/fstab文件并注释掉包含单词swap的任何行

b) Linux系统上的另一个方式修改vm.swappiness为1。这减少了内核交换的趋势,并且在正常情况下不应该导致交换,同时仍然允许整个系统在紧急情况下交换。

c)在Linux/Unix系统上使用mlockall,或者在Windows上使用VirtualLock,尝试将进程地址空间锁定到RAM中,防止任何Elasticsearch内存被交换出去,这可以通过在config/elasticsearch.yml文件中配置一行来实现

bootstrap.memory_lock: true

3. 系统控制文件设置

Elasticsearch默认使用mmapfs目录存储索引。默认操作系统对mmap计数的限制可能太低,这可能导致内存异常。修改方式如下:

a) 修改 /etc/sysctl.conf文件

系统控制文件是管理系统中的各种资源控制的配置文件。ES需要开辟一个65536字节以上空间的虚拟内存。Linux默认不允许任何用户和应用直接开辟虚拟内存。
新增内容为:

vm.max_map_count=262144

使用命令: sysctl -p 让系统控制权限配置生效。

b) root用户下命令行方式临时设置

sysctl -w vm.max_map_count=

4. 线程数设置

Elasticsearch为不同类型的操作使用不同的线程池。需要确保Elasticsearch用户可以创建的线程数至少为4096。可以用如下方式设置:

修改/etc/security/limits.d/90-nproc.conf 设置为 4096

*          soft    nproc     4096
root soft nproc unlimited

5. DNS cache设置

在 JVM options中设置  es.networkaddress.cache.ttl 和 es.networkaddress.cache.negative.ttl,默认为60s和10s

耿小厨已开通个人微信公众号,想进一步沟通或想了解其他文章的同学可以关注我

Elasticsearch 6 重要参数配置的更多相关文章

  1. Elasticsearch 学习总结 - 相关配置补充说明

    一.   Elasticsearch的基本概念 term索引词,在elasticsearch中索引词(term)是一个能够被索引的精确值.foo,Foo Foo几个单词是不相同的索引词.索引词(ter ...

  2. ElasticSearch第一步-环境配置

    ElasticSearch第一步-环境配置 ElasticSearch第二步-CRUD之Sense ElasticSearch第三步-中文分词 ElasticSearch第四步-查询详解 Elasti ...

  3. 转:浅谈UNIX下Apache的MPM及httpd.conf配置文件中相关参数配置

    为什么要并发处理 以Apache为代表的web服务器中,如果不支持并发,则在一个客户端连接的时候,如果该客户端的任务没有处理完,其他连接的客户端将会一直处于等待状态,这事不可想象的,好像没有为什么要不 ...

  4. Spark on Yarn:任务提交参数配置

    当在YARN上运行Spark作业,每个Spark executor作为一个YARN容器运行.Spark可以使得多个Tasks在同一个容器里面运行. 以下参数配置为例子: spark-submit -- ...

  5. Production环境中iptables常用参数配置

    production环境中iptables常用参数配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我相信在实际生产环境中有很多运维的兄弟跟我一样,很少用到iptables的这个 ...

  6. Unity3D安卓打包参数配置与兼容性的关系分析

    前言 在使用Unity3D工程导出安卓安装包的时候,往往会遇到兼容性的问题,针对某些机型,要么无法打开游戏,要么会出现卡机的现象.面对这种情况,我们可以调节相关的参数来提高兼容性. 为了了解在打包时候 ...

  7. 教你如何利用分布式的思想处理集群的参数配置信息——spring的configurer妙用

    引言 最近LZ的技术博文数量直线下降,实在是非常抱歉,之前LZ曾信誓旦旦的说一定要把<深入理解计算机系统>写完,现在看来,LZ似乎是在打自己脸了.尽管LZ内心一直没放弃,但从现状来看,需要 ...

  8. IIS 7.5 高并发参数配置

    IIS 7.5 高并发参数配置 由于之前使用的是默认配置,服务器最多只能处理5000个同时请求,对于高并发请求,参照文档设置10万并发 1. 调整IIS 7应用程序池队列长度 由原来的默认1000改为 ...

  9. Sqlserver推荐参数配置及日志收缩问题

    最近不定期有项目反馈周期性的系统整体性能下降情况,经分析存在因数据库环境.参数配置不佳造成的.比如,sqlserver日志文件缺省按百分比增长,当日志文件已经比较大时,每次扩展时耗时较长,系统整体卡顿 ...

随机推荐

  1. Android Animation 知识点速记备忘思维导图

    备注的大段文本,无法在图片中体现, 思维导图源文件放在附件中.使用 Xmind 8 制作. 附件:AndroidAnimation-xmind.zip

  2. ESP32D0WDQ6 灯泡 黑客

    这个黑客表现得如何聪明 灯泡 可能泄漏您的Wi-Fi密码O网页链接破解者博客详文 Pwn the LIFX Mini white O网页链接ESP32D0WDQ6, a SoC from ESPRES ...

  3. 【深入理解JAVA虚拟机】第三部分.虚拟机执行子系统.4.类加载及执行子系统的案例与实战

    1.概述 在Class文件格式与执行引擎这部分中 : 用户不能控制的:Class文件以何种格式存储,类型何时加载. 如何连接,以及虚拟机如何执行字节码指令等都是由虚拟机直接控制的行为 用户能控制的:字 ...

  4. 理解Underscore中的节流函数

    上一篇中讲解了Underscore中的去抖函数(_.debounced),这一篇就来介绍节流函数(_.throttled). 经过上一篇文章,我相信很多人都已经了解了去抖和节流的概念.去抖,在一段连续 ...

  5. 4.30-5.1cf补题

    //yy:拒绝转载!!! 悄悄告诉你,做题累了,去打两把斗地主就能恢复了喔~~~ //yy:可是我不会斗地主吖("'▽'") ~~~那就听两遍小苹果嘛~~~ 五一假期除了花时间建模 ...

  6. CF Gym101933K King's Colors

    题目分析 题目要求在树上涂上恰好\(K\)种颜色的方案数. 设\(f(k)\)表示恰好涂上\(k\)种颜色的方案数(答案即为\(f(K)\)). 设\(g(k)\)表示至多涂上\(k\)种颜色的方案数 ...

  7. 【[NOI2016]区间】

    发现自己的离散化姿势一直有问题 今天终于掌握了正确的姿势 虽然这并不能阻挡我noip退役爆零的历史进程 还是先来看看离散化怎么写吧,我以前都是这么写的 for(std::set<int>: ...

  8. [HNOI2007]紧急疏散EVACUATE

    嘟嘟嘟 看数据范围,第一反应觉得爆搜是不是能骗点分,但发现爆搜太难写了,于是就开始想想正解…… 正解大概猜到了是网络流,但是怎么把时间这个条件加入到图的内容中,却困扰了我好半天,总是感觉把这种不同维度 ...

  9. 练习:HPH 数据

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. 20145223 杨梦云 《网络对抗》 Web安全基础实践

    20145223 杨梦云 <网络对抗> Web安全基础实践 1.实验后回答问题 (1)SQL注入攻击原理,如何防御 **原理**:SQL注入攻击是通过构建特殊的输入作为参数传入web应用程 ...