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
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs