
The 'free' command reports what is present in the host, which is distinct from what's made available to the container. This isn't unique to libvirt LXC containers - in fact any command that is runnning in a cgroup with memory controller limits applied will see the same behaviour. Apps can't assume that 'free' reflects the amount of memory that is available to them. Instead they need to look at cgroups memory controller that they are placed under (/proc/self/cgroups tells you where) I think this is not completely true... I had a similiar problem in the
On 06.08.2018 10:35, Daniel P. Berrangé wrote: past, and I could get it fixed by using e.g. this in the domains XML: <memtune> <hard_limit unit='KiB'>4194304</hard_limit> <soft_limit unit='KiB'>4194304</soft_limit> <swap_hard_limit unit='KiB'>4194304</swap_hard_limit> </memtune> `free` then reports the correct values. Maybe you can give that a try @Markus Raps? Of course make sure to check out the documentation[1] of these config elements to make sure you really want what they do. Regards Rene [1] = https://libvirt.org/formatdomain.html#elementsMemoryTuning