Elasticsearch JVM embedding in Elvis 5 Server
Info: This feature is supported in Elvis Server version 5.3.x to 5.11.x. Support for it has been dropped since Elvis 5.12.
Part of the startup process of Elvis Server is starting an instance of elasticsearch (a search engine that takes care of searching and indexing in Elvis).
To minimize overhead and to reduce the startup time of Elvis Server, elasticsearch on Elvis Server versions 5.3 and higher is embedded in the same Java Virtual Machine (JVM) instance that is used for Elvis Server itself.
Note: In Elvis Server versions 5.0 to 5.2, elasticsearch is started in a separate JVM instance, together with the JVM instance that is started for Elvis Server itself. This causes some additional overhead and a slightly longer startup time.
The downside of embedding elasticsearch this way is that you have less control over the JVM settings and that elasticsearch shares memory with Elvis Server.
Running elasticsearch in its own JVM instance
To run elasticsearch in its own JVM instance, add the following property to the node-config.properties.txt file (this prevents elasticsearch from being embedded in the JVM instance of Elvis Server):
- Windows: \Elvis Server\Config
- Mac OS X: /Elvis Server/Config
- Linux: /srv/elvis-server/config
Note: Because enabling the option results in a slightly higher overhead, we recommend to use it on nodes with sufficient memory (16GB and over).
Also make sure to allocate sufficient memory to this JVM instance, as explained in Elvis 5 memory configuration.