Почему `ulimit` не ограничивает использование памяти, как я ожидаю?

615
Remi.b

Я пытаюсь ограничить использование памяти процессом

$ulimit -m 2 $/usr/bin/time -l ./myProcess arg1 arg2 

Процесс запускается без остановки до timeвыхода

 7.00 real 4.83 user 2.16 sys 4154855424 maximum resident set size 0 average shared memory size 0 average unshared data size 0 average unshared stack size 1014384 page reclaims 0 page faults 0 swaps 0 block input operations 2 block output operations 0 messages sent 0 messages received 0 signals received 0 voluntary context switches 15 involuntary context switches 

показывая, что лимит был превышен, несмотря на ulimit -m 5командную строку. Я также пробовал варианты -vи, -lно ни один из них не кажется, на самом деле ограничить использование памяти. Я также попытался, timeчтобы убедиться, что он не сможет увидеть использование памяти подпроцесса. Здесь все ограничения после использования всех -m, -vи-l

$ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited file size (blocks, -f) unlimited max locked memory (kbytes, -l) 3 max memory size (kbytes, -m) 2 open files (-n) 256 pipe size (512 bytes, -p) 1 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 709 virtual memory (kbytes, -v) 2 

Если я ограничиваю время процессора ( ulimit -t 3), то он работает нормально и убивает процесс через 3 секунды.

Вопрос

Есть ли что-то, что я неправильно понимаю ulimit -m 5? Есть ли ошибка в моей версии ulimit?

Есть ли альтернатива ulimitограничению времени и использования памяти процессом (необязательно сеанс bash)?

Версии

Я на MAC OSX 10.11.6и bash version 3.2.57.

Связанный пост

Пост «Не ограничивайте использование памяти» очень связан, но я не думаю, что принятый ответ предлагает какое-либо решение о том, как решить проблему.

1
Вероятно, этого нет на справочной странице macOS для `bash`, но на справочной странице Linux написано, что" многие системы не соблюдают этот предел [-m] ". dsstorefile1 6 лет назад 0
@dsstorefile mmhhh ... хорошо. Ну, я думаю, что это решает проблему. Вы хотите сделать это ответом? Вы случайно не знаете альтернативу? Remi.b 6 лет назад 0

0 ответов на вопрос