Our understanding of the framework is that you can provide two memory configuration values, --mem and --heap. From groking the code, it appears that --mem is used to allocate RAM from Mesos (which, by default, is not enforced, --cgroups_limit_swap being disabled in mesos-slave by default), and --heap is used to specify memory constraint for the JVM itself.
These values being set orthogonally, it seems at the very least one should set --heap <= --mem. However, it begs the question, by how much? Is off-heap storage being used by the Kafka brokes? Is it intelligently detecting the gap between MESOS memory allotted and JVM heap constraint, and then dedicating the difference to RocksDB or something?
Our understanding of the framework is that you can provide two memory configuration values,
--mem
and--heap
. From groking the code, it appears that--mem
is used to allocate RAM from Mesos (which, by default, is not enforced,--cgroups_limit_swap
being disabled in mesos-slave by default), and--heap
is used to specify memory constraint for the JVM itself.These values being set orthogonally, it seems at the very least one should set
--heap
<=--mem
. However, it begs the question, by how much? Is off-heap storage being used by the Kafka brokes? Is it intelligently detecting the gap between MESOS memory allotted and JVM heap constraint, and then dedicating the difference to RocksDB or something?