我正在使用 docker 容器化一堆服务。有时,容器化服务会大量交换。我已在主机系统上更改vm.swappiness
为via sysctl。1
但是 docker 的内存 cgroup 仍然具有旧的(默认)值 60。因此,所有特定容器的 cgroup 都具有与父容器相同的值。
sysctl vm.swappiness
> vm.swappiness = 1
cat /sys/fs/cgroup/memory/docker/memory.swappiness
> 60
cat /sys/fs/cgroup/memory/docker/${CONTAINER_ID}/memory.swappiness
> 60
所有手动更改 swappiness 的尝试(通过将所需的值回显到memory.swappiness
文件中)都失败,并显示permission denied
.
主题:如何限制容器交换?
我正在使用ubuntu 12.04
kernel 3.13
,我的 docker 版本是1.1.2
带有版本的本机执行驱动程序(不是 lxc)0.2
。内核加载了cgroup_enable=memory swapaccount=1
.