Warum kann ulimit den residenten Speicher nicht erfolgreich einschränken und wie?

Ich starte eine neue Bash-Shell und führe aus:

ulimit -m 102400
ulimit -a
"
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 20
file size               (blocks, -f) unlimited
pending signals                 (-i) 16382
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) 102400
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
"

und dann führe ich das Kompilieren eines riesigen Projekts aus. Das Verknüpfen davon verwendet einen großen Speicher, mehr als 2 GB. Das Ergebnis war ein Prozess, der mehr als 2 GB residenten Speicher verwendete.

ist da was falsch? Wie verwende ich ulimit oder kann ich andere Programme verwenden, um den residenten Speicher zu begrenzen?

Das Ziel der Beschränkung des residenten Speichers ist, dass der Computer einfriert, wenn ein Prozess fast den gesamten Speicher belegt.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage