Description
I have set the value: heapOptions: "-Xms64m -Xmx512m
in the ksqldb (v0.26+) chart, and i cannot see it having an effect on the JVM. I see the values being passed to the ksqldb process inside the container, but when i run it in production i see its RAM consumption level at a very stable value which is higher than 512MB.
In particular it seems that ksqldb allocates memory w.r.t to the number of tables/streams it has to deal with. in fact i have 3 namespaces with 3 independent ksqldb instances (i.e. they share same kafka cluster + schema reg. but have different service ids) and i see these memory level:
- namespace 1: ksqldb instance has no tables, no streams, no queries, and memory usage of 461MB (but it is doing nothing ...)
- namespace 2: ksqldb instance with 7 tables, 3 streams, 2 pers. queries (joins) --> mem usage: 1.1 GB
- namespace 3: exactly the same setup and schemas as namespace2 (but on different topics) --> mem usage: 1.13 GB
so i wonder ... is it possible to control the RAM usage of ksqldb via the heap options or is it a must to use RockDB cache configs? and even if not, what are heapOptions for then ?