Hi, I‘m trying to configure our Artemis cluster nodes in such a way that it won‘t get oom-killed by Linux kernel, but instead paging would occur. Most of the times it works, however after considerable periods of paging sometimes we get:
Jan 07 19:02:11 activemq-artemis-node-1 kernel: oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/system.slice/activemq.service,task=java,pid=4086,uid=1001 Jan 07 19:02:11 activemq-artemis-node-1 kernel: Out of memory: Killed process 4086 (java) total-vm:4939656kB, anon-rss:2627224kB, file-rss:0kB, shmem-rss:0kB, UID:1001 pgtables:5588kB oom_score_adj:0 Full oom-killer dump https://p.defau.lt/?HayAcFR8RRDrVZZAlav4IA Artemis nodes are using standard JVM options coming from official distribution: -Xms512M -Xmx2G . They run in dedicated virtual hosts which have 4GB assigned. Nothing else runs on those boxes. global-max-size is not set so occupies 1G. Just wondering, how JVM heap sizes should be configured in relation to available RAM? I found just this vague description https://activemq.apache.org/components/artemis/documentation/latest/perf-tuning.html#tuning-the-vm but nothing concrete. There is also a question of JVM Direct Memory and other memory sectors which are not controlled by heap settings. Does Artemis use those and what is recommended ratios for them? -- Best Regards, Vilius Šumskas Rivile IT manager