Das folgende Problem tritt auf einem Rechner mit Ubuntu 10.04 und dem Kernel 2.6.32-22-generic auf: Das Setzen eines Limits für die Resident Set Size (RSS) eines Prozesses scheint keine Wirkung zu haben. Derzeit setze ich das Limit in Python mit folgendem Code:
import resource
# (100, 100) is the (soft, hard) limit. ~100kb.
resource.setrlimit(resource.RLIMIT_RSS, (100, 100))
memory_sink = ['a']*10000000 # this should fail
Die Liste, memory_sink, ist jedes Mal erfolgreich. Wenn ich die RSS-Nutzung mit top überprüfe, kann ich den Prozess leicht dazu bringen, 1gb RAM zu verwenden, was bedeutet, dass die Begrenzung nicht funktioniert. Funktionieren RSS-Limits bei diesem Kernel oder dieser Distribution nicht? Wenn es hilft, funktioniert resource.RLIMIT_NPROC (Benutzerprozess-Limit).