Für einen bestimmten Prozess in /proc/<pid>/smaps
, für einen bestimmten Mapping-Eintrag, was sind:
- Shared_Clean
- Shared_Dirty
- Private_Clean
- Private_Dirty
Ist Shared_Clean
+ Shared_Dirty
die Menge an Speicher, die mit anderen Prozessen geteilt wird? So ist es wie Shared RSS?
In ähnlicher Weise ist Private_Clean
+ Private_Dirty
die Menge an Speicher, die nur für einen Prozess verfügbar ist ? Es ist also wie privates RSS?
Ist der PSS-Wert = PrivateRSS + (SharedRSS / Anzahl der Prozesse, die es gemeinsam nutzen)?
Noch ein paar Fragen nach dem Lesen dieses Links: LWN
Lassen Sie uns nun über den gesamten Prozess sprechen, dessen Smaps-Eintrag wir uns ansehen.
Ich habe bemerkt , dass , wenn ich Shared_Clean
+ Shared_Dirty
+ Private_Clean
+ Private_Dirty
für jeden smaps Eintrag für den Prozess , den ich die RSS des Verfahrens erhalten , wie von ps
, was ziemlich cool ist. Zum Beispiel
ps -p $$ -o pid,rss
Gibt mir die (ungefähr) gleichen Wert für rss als die Summe jeder Shared_Clean
, Shared_Dirty
, Private_Clean
, Private_Dirty
Eintrag in / proc / $$ / smaps.
Aber was ist mit PSS für den gesamten Prozess? Wie erhalte ich aus dem obigen Beispiel die PSS für $$? Kann ich einfach den PSS-Eintrag für jede Smaps-Zuordnung hinzufügen und zu PSS for $$ gelangen?
Und was ist mit USS für den gesamten Prozess? Im obigen Beispiel schätze ich, dass ich für $$ zur USS gelangen kann, indem ich nur die Private_ * -Einträge für jeden Smaps-Eintrag für $$ zusammenfasse. Richtig?
Hinweise:
PSS = Proportionale eingestellte Größe.
USS = Unique Set Size.