Как я могу ограничить использование ОЗУ определенным пользователем или процессом?

Я использую фоновый сервис, который время от времени теряет память. Чтобы предотвратить использование Alt + SysRq REISUB [ 1 ], я бы хотел ограничить использование ОЗУ для одного процесса или пользователя системы.

Я действительно хотел бы сказать: пользователь x может использовать максимальный объем оперативной памяти 1 ГБ.

Возможно ли это? Мне нужна виртуальная машина для этого? Я использую Ubuntu 9.10.

8 голосов | спросил guerda 6 52009vEurope/Moscow11bEurope/MoscowFri, 06 Nov 2009 00:10:23 +0300 2009, 00:10:23

2 ответа


10

ulimit - ваш друг. Проверьте флаг -m. I think вы устанавливаете это перед запуском своего процесса и затем применяете его (в текущей оболочке).

ответил basszero 6 52009vEurope/Moscow11bEurope/MoscowFri, 06 Nov 2009 00:23:07 +0300 2009, 00:23:07
4

В дополнение к командам оболочки ulimit (для bash) или limit (для csh), вы можете управлять этим изнутри вашего кода с помощью функции ulimit().

ответил KeithB 6 52009vEurope/Moscow11bEurope/MoscowFri, 06 Nov 2009 00:30:24 +0300 2009, 00:30:24

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132