3

Как я могу установить ограничение ОЗУ для конкретного пользователя? Я попытался отредактировать файл /etc/security/limits.conf , и ограничения памяти там, но я все еще вижу процесс пользователя, превышающий установленное ограничение.

Я знаю, что ограничения указаны в килобайтах, поэтому я не использую неправильный номер.

Например, я пытаюсь установить его так, чтобы пользователь не мог использовать более 2048 МБ (или 2 097 152 КБ) памяти, а его программа будет использовать как 2500 МБ.

Есть ли способ, которым я могу сделать это без виртуальных машин? Я также пытаюсь держаться подальше от запуска виртуальных машин в качестве опции.

Вот мой /etc/sysconfig/limits.conf.

Кроме того, лимит RSS игнорируется, так как версия ядра, которую я использую, - 2.6.18.

2 ответа2

1

Элементы управления, связанные с памятью, применяются через ограничения ресурсов для каждого процесса. Пределы процесса, связанные с памятью, в Linux долгое время были частично нарушены. Пример:

$ (ulimit -m 1; emacs)

Если Emacs запускается, очевидно, что ограничение ресурса RSS не применяется. Ограничения, которые я видел в работе, - это сегменты данных и ограничения стека.

$ (ulimit -d 1; emacs)
emacs: Memory exhausted--use M-x save-some-buffers RET
$ (ulimit -s 1; emacs)
$

Поэтому используйте только пределы памяти "data" и "stack", так как они, похоже, применяются.

-1

Чтобы ограничить доступные ресурсы для набора процессов, для пользователей или для групп, вы можете использовать cgroups:https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .