[libvirt-users] starting a domain only when you have enough resources

Michal Privoznik mprivozn at redhat.com
Tue Jan 26 12:39:23 UTC 2016


On 26.01.2016 12:30, Andrei Perietanu wrote:
> Hi all,
> 
> I am running KVM on a 3.18 kernel. The system runs and Atom processor with
> 2Gb RAM.
> 
> Using KVM you obviously can over allocate your resources: say you have 4
> guests each configured with 1GB ram. Running all four at the same time,
> depending on the workload, can crash the system - I get a kernel trace when
> this happens.
> 
> But let's consider a simpler case: one guest with 1.5 Gb RAM, ubuntu 14.03.
> During the installation the system will again crash.
> The memory statistics (top or proc/meminfo) will show that the FreeMemory
> goes down to 12Mb when this happens - which kind of makes sense considering
> the host will require some RAM to run.
> 
> But the question is: does libvirt offer any way to prevent this from
> happening?
> 
> Some way of not allowing the user to start a guest unless you have enough
> free memory. I know how much ram each guest has configured but that is not
> enough. I need to know how much the system has available, and just reading
> the free memory statistic does not help much since that is only a snapshot
> - when running a guest you can have 1gb free now, and 10 mb free 2 min
> later.
> 
> Any ideas?

There is one option I see, use -mem-prealloc. Either you can passthrough
it onto qemu commandline [1] or use locked memoryBacking [2]. I advocate
for the latter though. Not only it will allocate all the memory at qemu
startup it will also lock it so it won't get swapped off.

Michal

1: http://libvirt.org/drvqemu.html#qemucommand
2: http://libvirt.org/formatdomain.html#elementsMemoryBacking




More information about the libvirt-users mailing list