On 08/28/12 13:55, Andreas Davour wrote:>
> Hi
Hi Andreas,>
> I have just started to investigate the possibilities of resizing memory for
my kvm virtual machines on the fly. It works just fine with virsh setmem and
that's great. Now, what I'm wondering about is the <memory>
directive in the xml domain definition. Why would I not just set that to the
size of available RAM in the host machine? Am I missing some nuance or finesse
to the handling of memory? What would happen if I had three virtual machines
with max set to physical max and then used setmem to give one of the virtual
machines more than its third?
The <memory> directive contains the maximum amount of memory you are
giving to the guest.
While the guest machine is running you can only change the allocation
for the guest using the memballoon driver, but you can't increase it
beyond what's set in <memory>. Please note that decreasing the amount
for a guest works only if the memballoon driver is loaded in the guest.
While the machine is booting the guest has access to all memory
specified in <memory> so you might run low on memory when you try to
start such guests in parallel. (Memory amount allocated to the guest
using memballoon is stored in element <currentMemory>)
With this you might use this in a scenario, where you have multiple
guests, but the guests only need large amounts of memory for short time
and not at the same time. You can then specify that together the
machines exceed memory of the host, but you return the memory to the
host using the memballoon driver and assign it back only if you require
it.>
> Thank for any feedback. I could maybe just try the latter out, but I have
no machine I could crash if that's the result...
>
> /andreas
>
Peter