man getrusage 2
sagt
ru_maxrss (since Linux 2.6.32)
This is the maximum resident set size used (in kilobytes). For RUSAGE_CHILDREN, this is the resident set size of the largest
child, not the maximum resident set size of the process tree.
Was bedeutet diese Zahl genau?
ru_maxrss
die in Bytes auf Mac / BSD-Maschinen ist.ru_maxss
Wird auf Mac OS X- (Darwin-) Computern in Byte angegeben, auf BSD- und Linux-Computern in Kilobyte. Siehe stackoverflow.com/q/40773924/781723 und stackoverflow.com/q/12050913/781723 .Antworten:
Die Größe des residenten Satzes eines Prozesses ist die Menge des Speichers, der dazu gehört und der derzeit im RAM vorhanden ist (resident) (realer RAM, nicht ausgelagert oder anderweitig nicht resident).
Wenn ein Prozess beispielsweise einen Teil des Speichers (z. B. 100 MB) zuweist und ihn aktiv verwendet (liest / schreibt), beträgt die residente Satzgröße etwa 100 MB (zuzüglich Overhead, Codesegment usw.). Wenn das Betriebssystem diesen Speicher nach Beendigung des Vorgangs für eine Weile nicht mehr verwendet (aber nicht freigibt), kann es sich dafür entscheiden, Teile dieses Speichers auszutauschen, um Platz für andere Prozesse (oder Cache) zu schaffen. Die Größe der residenten Gruppe würde sich dann um den Betrag verringern, den der Kernel ausgetauscht hat. Wenn der Prozess aufwacht und beginnt, diesen Speicher erneut zu verwenden, lädt der Kernel die Daten vom Auslagerungsvorgang erneut und die Größe des residenten Satzes steigt erneut an.
Das
ru_maxrss
Feld vonstruct rusage
ist die "High Water Mark" für die Größe des residenten Sets. Es gibt die maximale RAM-Nutzung für diesen Prozess an (bei VerwendungRUSAGE_SELF
).Sie können die Größe des residenten Satzes eines Prozesses begrenzen, um zu vermeiden, dass eine einzelne Anwendung den gesamten Arbeitsspeicher Ihres Systems "aufzehrt" und andere Anwendungen zum Auslagern zwingt (oder bei unzureichendem Arbeitsspeicher ganz ausfällt).
quelle