I'm running a cluster on version 7.14.1 with the bundled JDK:
ubuntu@JaneMisme:/$ /usr/share/elasticsearch/jdk/bin/java -version
openjdk version "16.0.2" 2021-07-20
OpenJDK Runtime Environment Temurin-16.0.2+7 (build 16.0.2+7)
OpenJDK 64-Bit Server VM Temurin-16.0.2+7 (build 16.0.2+7, mixed mode, sharing)
According to the documentation here, I would expect the heap size to be set automatically to a reasonable size:
By default, Elasticsearch automatically sets the JVM heap size based on a node’s roles and total memory. Using the default sizing is recommended for most production environments.
Looking at the logs on one of the nodes in the cluster, we can see that the heap size is set to only 1GB so it seems as though automatic heap sizing is not working:
ubuntu@JaneMisme:~$ zgrep "heap size" /elasticsearch/logs/ophan*
/elasticsearch/logs/ophan-2021-09-27-1.json.gz:{"type": "server", "timestamp": "2021-09-27T10:59:23,363Z", "level": "INFO", "component": "o.e.e.NodeEnvironment", "cluster.name": "ophan", "node.name": "JaneMisme", "message": "heap size [1gb], compressed ordinary object pointers [true]" }
I'd like to avoid having to manually override the default heap size, but don't know how to configure the cluster so that the heap is automatically set correctly.