Public bug reported: lxcfs provides a container-specific view of /proc/meminfo. Occasionally, with near zero or zero swap usage *and* swap accounting turned on (kernel parameter swapaccount=1), the container will report 100% swap utilization.
Example from Ubuntu 18.04 and lxcfs 3.0.3-0ubuntu1~18.04.1, using the output of "while true; do free |grep Swap >> swap.log; done" with the "free" command's header for clarity: total used free shared buff/cache available Mem: 2040052 53028 1839908 176 147116 1987024 Swap: 2097148 0 2097148 Swap: 2097148 0 2097148 Swap: 2097148 0 2097148 Swap: 2097148 0 2097148 Swap: 2097148 0 2097148 Swap: 2097148 0 2097148 Swap: 2097148 0 2097148 Swap: 2097148 0 2097148 Swap: 2097148 0 2097148 Swap: 2097148 0 2097148 Swap: 2097148 2097148 0 <--- The issue Swap: 2097148 0 2097148 Swap: 2097148 0 2097148 Swap: 2097148 0 2097148 Swap: 2097148 0 2097148 Swap: 2097148 0 2097148 Swap: 2097148 0 2097148 Swap: 2097148 0 2097148 Swap: 2097148 0 2097148 Additionally, "watch -n 0.1 "grep Swap /proc/meminfo"" was running in another terminal on the container, this seems to stimulate the behavior. This appears to come from proc_meminfo_read in bindings.c in lxcfs. >From the kernel documentation (https://github.com/torvalds/linux/blob/master/Documentation/admin- guide/cgroup-v1/memory.rst), under 5.5 usage_in_bytes: "For efficiency, as other kernel components, memory cgroup uses some optimization to avoid unnecessary cacheline false sharing. usage_in_bytes is affected by the method and doesn't show 'exact' value of memory (and swap) usage, it's a fuzz value for efficient access. (Of course, when necessary, it's synchronized.) If you want to know more exact memory usage, you should use RSS+CACHE(+SWAP) value in memory.stat(see 5.2)." When swap accounting is on and swap usage is 0 or very close to 0, the kernel reported mem+swap usage and the mem usage numbers can cross over, causing the assignments below to set swapfree to 0, triggering the issue: swapusage = memswusage - memusage, swapfree = swapusage < swaptotal ? swaptotal - swapusage : 0; ** Affects: lxcfs (Ubuntu) Importance: Undecided Status: New ** Tags: sts ** Tags added: sts -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1860813 Title: LXC container reports spike in swap occasionally To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/lxcfs/+bug/1860813/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs