У меня есть сервер 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