• 周一. 8月 15th, 2022

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

Elasticsearch启动过程错误汇总

admin

11月 28, 2021

1、内存不足

由于ES是运行在JVM上,JVM本身除了分配的heap内存以外,还会用到一些堆外(off heap)内存。 在小内存的机器上跑ES,如果heap划分过多,累加上堆外内存后,总的JVM使用内存量可能超过物理内存限制。 如果swap又是关闭的情况下,就会被操作系统oom killer杀掉    修改ES中config目录下的jvm.options文件   命令:vim jvm.options

-Xms1g
-Xmx1g
改为
-Xms512m
-Xmx512m

2、初始化堆内存和最大堆内存设置不一致导致

initial heap size [268435456] not equal to maximum heap size [536870912]; this can cause resize pauses and prevents mlockall from locking the entire heap

翻译一下:

初始堆大小[268435456]不等于最大堆大小[536870912];这可能导致调整大小暂停,并阻止mlockall锁定整个堆。

解决办法:

将初始化堆内存和最大堆内存设置为一样,即问题一的配置,这样,就避免了mlockall锁定整个堆。

3、max_map_count过低

max virtual memory areas vm.max_map_count [65536] is too low, increase to at least [262144]

翻译一下:

虚拟内存区域数量[65536]过低,至少增加到[262144]

默认为65536,调整4倍即262144

解决办法:

此操作需要root权限

在/etc/sysctl.conf文件最后添加一行

vm.max_map_count=262144

执行/sbin/sysctl -p 立即生效

发表回复

您的电子邮箱地址不会被公开。