Open
Description
The current code for the balloon is disabled due to some conflicts with the garbage collection mechanism. Furthermore, the JVM memory configuration switches (e.g., -Xmx, -Xss, -XX:PermSize, etc.) only accept absolute values. The idea is that if OSV is running only the JVM, the user might be interested in controlling the memory management as a percentage of the total available memory rather than use absolute values. This way, if the VM is provisioned with more / less memory, the settings will automatically auto-adjust. Therefore, the following improvements are suggested:
- Allow specifying JVM switches that control memory using percentage - e.g., -Xmx<MEM=80%,UNIT=M>, -XX:MaxPermSize=<MEM=15%,UNIT=G>
- When activating the balloon, allow configuration specifying how much to "reserve" for the JVM and how much to allocate for "other consumers" (such as the filesystem, network buffers and any other) - e.g., JVM=80%, Filesystem=5%, Network=8%, etc...
- Consult a configuration file that resides on the image for the above mentioned memory settings, so that users can affect a change by simply editing the file and re-booting instead of having to re-generate a new image with the new settings