ES的内存xms和xmx设置不一致导致启动失败
ES的内存xms和xmx设置不一致导致启动失败
问题背景与现象
ES启动失败:
1. 页面显示ES实例启动失败,查看详情是Xms和Xmx大小不一致;
ES的内存xms和xmx设置不一致导致启动失败
基于Flink+Doris构建高性能高扩展的全端实时数据仓库教程
数据仓库建模和实战教程(理论和业务结合)
Python实战金融风控回归模型(附代码)
【Python入门教程】零基础教程/全套教程|港大学霸系统精讲
MSF渗透实战训练营——入门至入狱系列【网络安全】
基于Flink+Hudi构建企业万亿级云上实时数据湖教程
python量化交易
自动化运维脚本编程:CMD/DOS批处理实战案例学习
数据仓库建模和实战教程(理论和业务结合)
Python实战金融风控回归模型(附代码)
【Python入门教程】零基础教程/全套教程|港大学霸系统精讲
MSF渗透实战训练营——入门至入狱系列【网络安全】
基于Flink+Hudi构建企业万亿级云上实时数据湖教程
python量化交易
自动化运维脚本编程:CMD/DOS批处理实战案例学习
2. 查看ES后台日志,报错如下,初始化内存和最大内存不一致,导致启动失败
/var/log/Bigdata/elasticsearch/esnode1/elasticsearch_cluster.log
2018-12-11T17:21:49,670][INFO ][o.e.b.BootstrapChecks ] [EsNode1] bound or publishing to a non-loopback address, enforcing bootstrap checks [2018-12-11T17:21:49,673][ERROR][o.e.b.Bootstrap ] [EsNode1] node validation exception [1] bootstrap checks failed [1]: initial heap size [536870912] not equal to maximum heap size [1073741824]; this can cause resize pauses and prevents mlockall from locking the entire heap [2018-12-11T17:21:49,677][INFO ][o.e.n.Node ] [EsNode1] stopping ... [2018-12-11T17:21:49,708][INFO ][o.e.n.Node ] [EsNode1] stopped [2018-12-11T17:21:49,708][INFO ][o.e.n.Node ] [EsNode1] closing ... [2018-12-11T17:21:49,721][INFO ][o.e.n.Node ] [EsNode1] closed
原因分析
如果JVM以不等的初始(Xms)和最大(Xmx)堆(heap)大小启动,则可能会在系统使用期间调整JVM堆的大小,因此可能会暂停。为了避免这些调整大小的停顿,需要使初始(Xms)堆(heap)大小等于最大Xms堆(heap)大小启动JVM。另外,启用了bootstrap.memory_lock,JVM将在启动时锁定堆(heap)的初始(Xms)大小。如果初始堆大小不等于最大堆大小,在重新调整大小之后,将不会将所有JVM堆锁定在内存中。
因此是ES的内核限制,要求ES的启动参数的初始(Xms)和最大(Xmx)内存相等。