
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