文档首页/
MapReduce服务 MRS/
组件操作指南(安卡拉区域)/
使用Elasticsearch/
Elasticsearch常见问题/
Elasticsearch的内存xms和xmx设置不一致导致启动失败
更新时间:2024-11-29 GMT+08:00
Elasticsearch的内存xms和xmx设置不一致导致启动失败
问题背景与现象
- 查看Elasticsearch后台日志,报错如下,初始化内存和最大内存不一致,导致启动失败。
vi /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堆的大小,因此可能会暂停。为了避免这些调整大小的停顿,启动JVM时需要使初始(Xms)堆(heap)大小等于最大(Xmx)堆(heap)大小。另外,启用bootstrap.memory_lock后,JVM将在启动时锁定堆(heap)的初始(Xms)大小。如果初始堆大小不等于最大堆大小,在重新调整大小之后,将不会将所有JVM堆锁定在内存中。
因此是Elasticsearch的内核限制,要求Elasticsearch的启动参数的初始(Xms)和最大(Xmx)内存相等。
解决方法
- 登录Manager,选择“集群 > 待操作集群的名称 > 服务 > Elasticsearch > 配置 ”。
- 修改Elasticsearch实例的“GC_OPTS”参数,使初始(Xms)和最大(Xmx)内存的值一致,重启Elasticsearch服务。
父主题: Elasticsearch常见问题