While updating my docker-compose file to the latest docker images, I noticed I had to set some extra values before I could run my ELK cluster:
I had to add an extra bootstrap check:
- "bootstrap.memory_lock=true"
and set the memlock ulimits:
ulimits:
memlock:
soft: -1
hard: –1
The memory lock setting will disable swapping out parts of the JVM heap to disk. Memory swapping is bad for performance and node stability so it should be avoided at all cost.
More information: https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration-memory.html
The memlock soft and hard values configures the range of memory that ElasticSearch will use. Setting this to –1 means unlimited.