Control: reassign runc 1.0.0~rc93+ds1-5+deb11u2 On Wed, Dec 21, 2022 at 4:45 PM Saj Goonatilleke <s...@discourse.org> wrote: > > Package: docker.io > Version: 20.10.5+dfsg1-1+deb11u1 > Severity: normal > > Hello, > > https://docs.docker.com/config/containers/resource_constraints/#limit-a-containers-access-to-memory > > --memory-swap imparts no effect. > --memory does impart an effect, but is useless without --memory-swap. > Anon pages will begin to overflow into swap once a workload approaches > its --memory limit. Instead of a quick OOM and workload restart, > the workload will bring down all system perf with swap thrashing. > > Docker is using the systemd cgroup driver. > README.Debian includes a note about swapaccount, > but I don't think this caveat applies to cgroups v2 and linux 5.10. > As shown below, swap accounting does appear to work OK. > > --- 8< --- > $ docker info > [...] > Server Version: 20.10.5+dfsg1 > [...] > Cgroup Driver: systemd > Cgroup Version: 2 > --- >8 --- > > Here are the relevant bits of the Docker container configuration: > > --- 8< --- > $ docker inspect container | jq '.[0].HostConfig.Memory' > 25165824 > $ docker inspect container | jq '.[0].HostConfig.MemorySwap' > 25165824 > --- >8 --- > > The configuration is faithfully sent to containerd: > > --- 8< --- > # ctr --namespace moby c info container-id | jq .Spec.linux.resources.memory > { > "limit": 25165824, > "swap": 25165824 > } > --- >8 --- > > The swap limit goes missing somewhere between containerd and systemd: >
Thanks for the detailed report, something between containerd and systemd, that is runc. So I'm reassigning the bug. -- Shengjing Zhu