The documentation for both GL and ES suggest to set the JVM Heap size to 50% of the available RAM for Elasticsearch, which I did. However, I haven’t found anything regarding the JVM Heap Size for the GL server.
I am running a setup where ES and GL are both running on their own servers.
I realized that the JVM Heap Size on the GL server is 1GB. (This server has 12GB). Because of this, I changed it to 6GB as well.
Is there a recommended way to set this setting for GL?
Make sure to not use all memory for the JVM heap but leave at least 50% of the system memory for use as disk buffer/cache.
If your machine has 12 GB of memory, you should probably use 4 GB for the ES heap, 2 GB for the Graylog heap, and leave the rest (6 GB) for the operating system to use as disk buffer/cache.
Typical answer for the freemium customers. Not only did the OP say that he read that guide already in detail, but you ignored the fact that he said each were running on their own server.
The OP is 100% legit in asking this question, as there is no recommendation for the Graylog Server itself, nor is their any distinction between the ES_HEAPSIZE and JVM_HEAPSIZE in the wiki. While it’s a starting point, the lack of detail is likely intentional.
The Graylog instance, by itself, doesn’t need as much heapsize as the ES instance. Giving each 6GB/12GB is a fine configuration, although you may consider doubling the RAM on the ES server to 12GB/24GB, if you plan on scaling this out to even a medium-sized company. You may find that GL works just fine with 4GB RAM dedicated to it, and that anything above this has very little impact on performance. At a certain point, the ring size, input/output buffers and underlying hardware, including but not limited to the number of processors, play a lot larger role in the overall performance and stability of your system.
@unilogger We are running two Graylog instances as containers on an two 8 core VMs with 8 gigs ram each. I currently have the Graylog heap set at 4GB. Do you have any recommendations for ring size and input/output buffers.
Currently using the following JAVA options for GL → GRAYLOG_SERVER_JAVA_OPTS: ‘-Xms4g -Xmx4g -XX:NewRatio=1 -XX:MaxMetaspaceSize=256m -server -XX:+ResizeTLAB -XX:+UseConcMarkSweepGC -XX:+CMSConcurrentMTEnabled -XX:+CMSClassUnloadingEnabled -XX:+UseParNewGC -XX:-OmitStackTraceInFastThrow’
In fact assigning more heap memory has a degrading effect on performance at a certain point because the Java garbage collector takes more time for cleaning up memory.
No, it’s not.
I’m looking forward to your contributions to the documentation to fix this lack of detail: