Ballooning works, but I usually leave it off for ZimaOS so performance stays predictable.
Why I skip it: ZimaOS often runs lots of Docker services that benefit from steady RAM (page cache, databases). If the host trims memory at the wrong time, you can get little hiccups, slow pulls, laggy UIs, DB stalls. It’s also easier to troubleshoot when the VM always has the same RAM.
When it’s fine: light/idle setups, lab boxes, or if you really want to overcommit. Just set a sensible minimum close to normal usage.
If you keep it on: pick a realistic floor after watching a day of RAM graphs, avoid memory-hungry DBs/JVM apps in that VM (or hard-cap them), and watch host pressure, if it’s reclaiming constantly, raise the floor.
Rule of thumb: want consistency (media, databases, GPU/AI, big Docker stacks)? Fix the RAM. Want density and can tolerate a little wobble? Ballooning is okay with a solid minimum.
References,