Elasticsearch memory problems

When I'm trying too start the elasticsearch in my Ubuntu the startup script gives me the following error:

Java HotSpot(TM) Client VM warning: INFO: os::commit_memory(0x74800000, 201326592, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 201326592 bytes for committing reserved memory.

I try already to search by this and I couldn't find the solution for this. If I restart the machine everything work well for a day and then the elasticsearch goes down and appear this error.

I already setup the property bootstrap.mlockall: true in the elasticsearch.yml file, and also the properties in the default elasticsearch file:

ES_HEAP_SIZE=512 (I have 1GB of RAM)
MAX_LOCKED_MEMORY=unlimited

Someone know what I need to do?

Thanks


You have configured a virtual machine with 1 GB of RAM, but elastic is trying to start with 2 GB of RAM (default for Elasticsearch version 5.X)

Either give more memory to your VM, or change Elasticsearch JVM settings /etc/elasticsearch/jvm.options and lower the values of the following parameters: -Xms512m -Xmx512m


For the current version of elastic (5.X) you can configure jvm startup options in the jvm.options file usually located under directory /etc/elasticsearch/jvm.options:

-Xms1g -Xmx1g

Hope it helps.


You need to start elasticsearch by the following parameters: ./bin/elasticsearch -Xmx512m -Xms512

However it seems your memory (1G) is too low for running elasticsearch.


Ideally elastic search jvm needs more memory for faster processing and querying multiple shards. However, the jvm size should not be more than the system memory size. Change the memory for elastic search as per your configuration in

/etc/elasticsearch/jvm.options:

-Xms4g (Minimum memory) -Xmx4g (Maximum memory)

Set it to the exactly half of the machine memory for ideal use