Re: automatic memory ballooning?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 08/16/2009 05:18 PM, Thomas Fjellstrom wrote:
On Sun August 16 2009, Avi Kivity wrote:
On 08/16/2009 12:55 PM, Thomas Fjellstrom wrote:
I'm wondering if kvm supports automatic memory ballooning. I've had a kvm
guest running for a couple days, and the balloon driver was loaded, and I
could manually change the amount of ram it had allocated in the console,
but it never seemed to change automatically.

Is there any support for that?

That would be part of a management application.  qemu only knows about
the guest it controls, while ballooning needs a global view of the system.

All a single guest needs to do is only use as much ram as it needs at any
given time (up to the max allocated). So if the guest hasn't used much ram in
a given time frame, "free" the free ram from the host, and only reallocate
when needed. It doesn't _need_ a management application, just happens to be
the way people do it.


This is far from being an accurate description of the reality ( ;) )
You cannot just expect the guest to do so. The guest has page cache that uses memory, it might run many processes that consume lots of memory, etc. Even if you could have done it, the translation between the guest-host is not 1-1 and the host needs to be aware of the guest memory usage.

This is what ballooning does. A target is determined by host management daemon. As a response, the guest balloon driver try to allocate memory and pass it as Guest Physical Addresses to the host. Now the host can use madvise in order to mark these pages as not needed (and free the mmu of pinning them).

The complexity is for the management to dynamically shift memory between the host and the guest to reach maximum performance.

Regards,
Dor
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux