Ограничьте память и процессор, доступные для пользователя в Linux

Меня немного беспокоит количество ресурсов, которые я могу использовать на общей машине. Есть ли способ проверить, есть ли у администратора ограничение на количество ресурсов, которые я могу использовать? И если да, то как можно задать такой лимит?


person Eduardo    schedule 12.01.2009    source источник


Ответы (3)


Ограничения, связанные с процессами, вы можете найти в /etc/security/limits.conf (прочитайте комментарии в файле, используйте Google или используйте man limits.conf для получения дополнительной информации). И, как указывает jpalecek, вы можете использовать ulimit -a, чтобы увидеть (и, возможно, изменить) все такие ограничения, действующие в настоящее время.

Вы можете использовать команду quota, чтобы увидеть, действует ли дисковая квота.

person matli    schedule 12.01.2009
comment
Все входы прокомментированы, значит ли это, что ограничений нет? - person Eduardo; 13.01.2009
comment
Скорее всего, по крайней мере, в отношении использования процессора и памяти. Я думаю, что для использования диска вам нужно будет проверить с помощью команды quota - person matli; 13.01.2009

Вы можете попробовать запустить

ulimit -a

чтобы увидеть, какие ограничения ресурсов действуют. Кроме того, если вам разрешено изменять такие ограничения, вы можете изменить их с помощью команды ulimit, например.

ulimit -c unlimited

снимает любые ограничения на размер основного файла, который может создать процесс.

person jpalecek    schedule 13.01.2009
comment
Я понимаю, что этому вопросу уже 3 года, но на справочной странице эта программа указана как устаревшая (вместо нее говорится использовать getrlimit) - person puk; 17.04.2012
comment
Функция библиотеки C ulimit() (см. ulimit(3)), встроенная оболочка - нет (см. bash (1)). - person remram; 07.03.2014

На уровне C соответствующие функции (фактически syscalls(2)...) может быть setrlimit(2) и setpriority(2) и sched_setattr(2). Вы, вероятно, хотели бы, чтобы они вызывались из вашей оболочки.

См. также proc(5) - и попробуйте cat /proc/self/limits и sched(7).

Вы можете использовать команду renice(1).

Если вы запускаете длительную программу (в течение нескольких часов), не требующую взаимодействия с пользователем, вы можете рассмотреть возможность использования некоторой пакетной обработки. обработка. В некоторых системах Linux есть команда batch или at.

person Basile Starynkevitch    schedule 31.03.2021