memory.memsw.limit_in_bytes:无效参数

memory.memsw.limit_in_bytes:无效参数

我有一台 Debian 10 服务器,我试图使用 cgroups2 限制用户的内存和交换。

使用memory.limit_in_bytes工作正常,但我想限制内存+交换,使用memory.memsw.limit_in_bytes它不起作用。

当我运行时出现此错误cgconfigparser

root@server:~# cgconfigparser -l /etc/cgconfig.conf
Error: failed to set /sys/fs/cgroup/memory/group1/memory.memsw.limit_in_bytes: Invalid argument
cgconfigparser; error loading /etc/cgconfig.conf: Failed to remove a non-empty group
root@server:~#

这是该组:

group group1 {
  memory {
    memory.memsw.limit_in_bytes = 512m;
  }
}

知道出了什么问题吗?

编辑:我已经在 GRUB 命令中启用了 cgroups 内存和 swapaccount,但问题仍然出现。

答案1

感谢@doktor5000提供答案限制单个 Linux 进程的内存使用

我从该答案中得出以下结论:memory.limit_in_bytes必须在 之前设置memory.memsw.limit_in_bytes,并且memory.memsw.limit_in_bytes必须大于或等于memory.limit_in_bytes

所以就我而言,这个组配置有效:

group group1 {
  memory {
    memory.limit_in_bytes = 512m;
    memory.memsw.limit_in_bytes = 512m;
  }
}

这似乎将用户的内存+交换空间限制为 512MB。我已经测试过了https://github.com/julman99/eatmemory

相关内容