How to fix ElasticSearch [1]: initial heap size [...] not equal to maximum heap size [...];
Problem:
Your ElasticSearch server fails to start with an error message like
ERROR: [1] bootstrap checks failed
[1]: initial heap size [536870912] not equal to maximum heap size [2147483648]; this can cause resize pauses and prevents memory locking from locking the entire heap
ERROR: Elasticsearch did not exit normally - check the logs at /usr/share/elasticsearch/logs/docker-cluster.log
Solution
Set the initial heap size equal to the maximum heap size: The -Xms argument and the -Xmx argument must be equal, for example:
-Xms2048m -Xmx2048m
Typically (such as in a docker-based setup) you can set this in ES_JAVA_OPTS
:
ES_JAVA_OPTS=-Xms2048m -Xmx2048m
ForĀ docker-compose
based environments, this is an example configuration that works:
environment:
- cluster.name=docker-cluster
- node.name=elasticsearch1
- cluster.initial_master_nodes=elasticsearch1
- bootstrap.memory_lock=true
- http.cors.allow-origin=http://localhost:1358,http://127.0.0.1:1358
- http.cors.enabled=true
- http.cors.allow-headers=X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
- http.cors.allow-credentials=true
- "ES_JAVA_OPTS=-Xms2048m -Xmx2048m"
After that, restart your ElasticSearch instance.