Как ограничить использование памяти процесса в Linux (например, с помощью BSD :: Resource) - PullRequest
7 голосов
/ 09 июня 2009

Я бы хотел ограничить использование памяти для моего скрипта Perl, работающего в системе Linux. Я пытался использовать BSD :: Resource setrlimit, но у меня были проблемы. Буду признателен за любые указатели. Спасибо.

Ответы [ 2 ]

8 голосов
/ 19 февраля 2010

Когда вы разрабатываете код, ваша Perl-программа легко запускается и использует всю память. Машина остановится, пока программа не исчерпает память и не умрет. Вы можете предотвратить эту проблему:

Используйте этот код:

use BSD::Resource;
setrlimit(get_rlimits()->{RLIMIT_VMEM}, 1_000_000_000, -1) or die;
1;

Я поместил этот код в limit.pm (отсюда и «1;»). Я могу тогда сказать

use limit;

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

3 голосов
/ 09 июня 2009

Скотт Корли предлагает установить ulimit перед запуском сценария perl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...