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;
  }
}

Есть идеи, в чем проблема?

EDIT: Я уже включил cgroups memory и swapaccount в команде GRUB, но проблема все еще возникает.

решение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;
  }
}

который видит ограничение памяти+свопа пользователя до 512 МБ. Я проверил это сhttps://github.com/julman99/eatmemory

Связанный контент