[libvirt] Virtio Ballon driver problem

John Magee jlmagee at maildev.mageenet.net
Tue Dec 13 02:50:04 UTC 2011

On Mon, Dec 12, 2011 at 11:53 AM, Eric Blake <eblake at redhat.com> wrote:

> On 12/11/2011 08:42 PM, Pankaj Rawat wrote:
> > Well the process which get killed is the process running on guest trying
> > to use memory , It is a simple c program having malloc function to do
> > the memory requirement thing(Tested and working)
> > The memory given to the guest is 400MB which is less then the maximum
> > memory as specified rest of memory is with ballon
> OK, so the process within the guest was killed because it used too much
> memory and triggered the OOM killer in the guest.
> >
> > Now the virsh setmem command is correctly working but this has to be
> > done manually . Didn't the documentation said that this is a dynamic
> > process So each time a guest is running out of memory the host will
> > fetch some memory from its own or other guest memory pages and give it
> > to the guest which is running out of memory.
> I don't know of any documentation that said that.  Point us to any URLs
> that need corrections if you found misleading documentation.
> I do know that existing documentation states that guest memory is not
> backed by host memory until the guest actually touches the memory (that
> is, you can oversubscribe memory among all the guests, and as long as
> the guests don't touch all their memory, you won't force the host into
> swap), but that is independent from the issue of the memory balloon -
> the point of the balloon is that guests can only touch as much memory as
> the balloon allows, and not for coordinating which host memory pages
> back a guest memory page.
> > Well I don't see that
> > happening , instead of allocating more memory to guest VM . It is
> > killing the process which is requesting more memory.
> The guest cannot trigger the balloon to request more memory.  Basically,
> when the balloon is active, the guest can only use as much memory as is
> not claimed by the balloon, and it takes host action to  change the size
> of the balloon to allow the guest to use more memory.  Still, once you
> change the size of the balloon, the memory isn't actually allocated to
> the guest until the guest touches the page and forces the host to map
> another page to the guest to cover that memory use.
> > Can you help how can I achieve such dynamic behavior from the ballon
> > driver so that I don't have to run command manually In order to get more
> > memory ??
> I don't think what you are asking for is possible.  If you want to
> dynamically size guest memory according to guest workload, then in the
> host, you will have to periodically check in on guest memory usage and
> make a decision in the host to manually change the balloon allocations.
With a bit of work this could achieve the desired automation. Looks like it
will be in oVirt at some point as well.

> --
> Eric Blake   eblake at redhat.com    +1-919-301-3266
> Libvirt virtualization library http://libvirt.org
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20111212/75d0b21c/attachment-0001.htm>

More information about the libvir-list mailing list