> Thanks for your reply.
>
> > I've not heard of this behaviour in ballooning before, although to be
> > honest I'd expect such an aggressive shrinking might upset the guest
> > anyhow, so it's not necessarily something you'd want to do in production!
>
> Well, of course, the guest gets upset if its memory is shrank too much. And
> the lowest amount of memory is related to the maximum memory a domain was
> started with. However, 160MB is quite fine for a guest originally started
> with 3.5GB but only if only few daemons are running in it. For example, for
> a domain with 15GB, it seems the minimum is somewhere around 500MB.
Ok, well if it works for you then fair enough.
I've seen Linux's memory management system get upset when it actually has
plenty of memory to spare, seemingly because it gets scared when the
available memory decreases by a large amount :-) Note that the problem I saw
wasn't not having /enough/ memory in the guest, it was that the guest went
into emergency behaviours simply because the memory had suddenly shrunk...
Memory ballooning gets seen by the guest as a big memory allocation, so this
behaviour is kind of understandable. The balloon driver is less aggressive
these days so Linux is probably less scared by it. Still, I'd advise to
verify that you can reliably do aggressive ballooning stably before using it
in production.
This may be less of a problem these days, of course - the balloon drivers I
managed to really provoke into breaking things were very old indeed.
Note also that a domain that's created with 4G and resized to 400M will
have /less available memory/ than one that is created for 400M in the first
place. That's because the OS will have created larger data structures to
cope with the larger memory (as pointed out in one of the threads below) -
again something to bear in mind.
> > echo size_in_bytes > /proc/xen/balloon
>
> This really helped much.
Ah, glad to hear it :-)
> I tried it and realized that I couldn't shrink the
> memory below 400MB. So the balloon driver was the culprit. I looked into it
> and found minimum_target() function, which counts minimum memory based on
> domain's maximum memory. However, it's worth noting that the kernel is
> 2.6.21 by SuSE and there is no such function in 2.6.18 kernel from Xen
> 3.2.0 distribution. So the problem is only related to SuSE kernels.
Coincidentially this got recently mentioned on xen-devel. SuSE provide a
patch in their balloon driver to prevent over aggressive ballooning, so your
diagnosis is indeed correct.
Here are some relevant threads:
http://lists.xensource.com/archives/html/xen-devel/2008-04/msg00143.html
http://lists.xensource.com/archives/html/xen-devel/2008-04/msg00116.html
Cheers,
Mark
--
Push Me Pull You - Distributed SCM tool (http://www.cl.cam.ac.uk/~maw48/pmpu/)
_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users
|