Warum beschränkt `ulimit` nicht die erwartete Speicherauslastung?

678
Remi.b

Ich versuche die Speichernutzung eines Prozesses zu begrenzen

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

Der Prozessablauf ohne getötet zu werden, bis timeAusgänge

 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 

zeigt, dass das Limit trotz ulimit -m 5Befehlszeile überschritten wurde. Ich habe auch versucht, die Optionen -vund -laber keiner von ihnen scheint tatsächlich die Speichernutzung zu begrenzen. Ich habe auch versucht time, sicherzustellen, dass die Speicherbelegung eines Unterprozesses nicht übersehen wird. Hier sind alle Grenzen, nachdem alle benutzt wurden -m, -vund-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 

Wenn ich die CPU-Zeit einschränke ( ulimit -t 3), funktioniert es einwandfrei und bricht den Prozess nach 3 Sekunden ab.

Frage

Gibt es etwas, was ich falsch verstanden habe ulimit -m 5? Gibt es einen Fehler in meiner ulimit-Version?

Gibt es eine Alternative, ulimitum die Zeit und die Speicherauslastung eines Prozesses zu begrenzen (nicht unbedingt die bash-Sitzung)?

Versionen

Ich bin auf MAC OSX 10.11.6und bash version 3.2.57.

Verwandte Post

Der Beitrag "ulimit, der die Speichernutzung nicht einschränkt" ist sehr verwandt, aber ich glaube nicht, dass die akzeptierte Antwort eine Lösung für die Lösung des Problems bietet

1
Dies ist wahrscheinlich nicht in der macOS-Manpage für `bash` enthalten, aber die Linux-Manpage besagt, dass" viele Systeme diese [-m] -Grenze nicht einhalten ". dsstorefile1 vor 6 Jahren 0
@dsstorefile mmhhh ... ok. Nun, ich denke, das löst das Problem. Möchten Sie es zu einer Antwort machen? Kennen Sie zufällig eine Alternative? Remi.b vor 6 Jahren 0

0 Antworten auf die Frage