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