OpenSearch/docs/reference/setup/sysconfig/heap_size.asciidoc

37 lines
1.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[[heap-size]]
=== Set JVM heap size with ES_HEAP_SIZE
In development mode, Elasticsearch tells the JVM to use a heap with a minimum
size of 256MB and a maximum size of 1GB. When moving to production, it is
important to configure the `ES_HEAP_SIZE environment variable to ensure that
Elasticsearch has enough heap available.
Elasticsearch will assign the entire heap specified in `ES_HEAP_SIZE on startup.
The value for this setting depends on the amount of RAM available on your server. A good rule of thumb is:
* The more heap available to Elasticsearch, the more memory it can use for
caching.
* Set the `ES_HEAP_SIZE` to no more than 50% of your RAM, to ensure that there
is enough RAM left for kernel file system caches.
* Dont set `ES_HEAP_SIZE` to more than about 31GB to ensure that the JVM uses
compressed object pointers (compressed-oops). You can verify that you are
under the limit by looking for a line in the logs like the following:
heap size [1.9gb], compressed ordinary object pointers [true]
Here are examples of how to set the ES_HEAP_SIZE:
[source,sh]
------------------
ES_HEAP_SIZE=2g ./bin/elasticsearch <1>
ES_HEAP_SIZE=4000m ./bin/elasticsearch <2>
------------------
<1> Set the min/max heap size to 2GB.
<2> Set the min/max heap size to 4,000MB.
When using the Debian or RPM package, ES_HEAP_SIZE can be configured in the
<<sysconfig,system configuration file>>.