So... I tried to use memory overcommit on KVM this week, and it blew
up in my face. Apparently it's configured such that if I have a
Service Offering of 4G, and I set memory overprovisioning to 2:1, the
guest only actually gets configured with 2G. That's not how
overprovisioning is supposed to work, IMO.

Here's a vm definition with a 3:1 mem overprovision setting, which
ensures that system vms don't work:

  <memory unit='KiB'>262144</memory>
  <currentMemory unit='KiB'>87040</currentMemory>

Note currentMemory needs to be manually tuned if I ever want the vm to
use/see more. This is more for live scaling (which is also broken
because the guest could just rmmod virtio-balloon and see everything).

I'd like to just rip out the code that is setting ballooning feature
based on overprovisioning factor, but perhaps there was a reason this
was done. From my point of view, if I give someone a service offering
that says 4G, it should provide 4G, and if I can do memory
deduplication on the backend to overprovision that's up to me to do.
Overprovisioning should not be a divider on all service offerings.

Reply via email to