Erklärung RSS/PSS an Linux-Systemen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
helloBavaria
User
Beiträge: 12
Registriert: Donnerstag 17. Februar 2022, 11:32

Hallo Zusammen,

ich wollte mich gerade damit beschäftigen, den benötigten Speicher von Python-Prozessen auszuwerten, z.B. um damit Speicherlecks erkennen zu können.
Dabei bin ich auf die Begriffe RSS und PSS gestoßen. So wie ich das verstanden habe, unterscheidet sich PSS von RSS dadurch, dass es die proportionale Größe seiner gemeinsam genutzten Bibliotheken meldet.
PSS ist also hilfreich, denn wenn die PSS aller Prozesse im System zusammengerechnet werden, ist dies eine gute Darstellung der gesamten Speichernutzung im System.

RSS zeigt dagegen den Speicher, den der Prozess brauchen würde, wenn er ganz alleine laufen würde. Ist das so richtig? Um Speicherlecks zu finden, ist also RSS vielleicht noch hilfreicher, wenn ich das richtig verstanden habe.

Danke schon mal und viele Grüße
helloBavaria
User
Beiträge: 12
Registriert: Donnerstag 17. Februar 2022, 11:32

Zusätzliche Frage: Gibt es auch eine Möglichkeit irgendwo abzulesen, wie viel Speicher ein Prozess maximal mal gebraucht hat?
Wenn z.B. zur Laufzeit Objekte erzeugt werden, erhöht sicher der Speicherbedarf. Werden diese Objekte dann wieder zerstört, wird der Speicherbedarf wieder kleiner. Steht auch irgendwo der MAX-Wert, also der Speicherbedarf, der maximal mal benötigt worden ist?
Benutzeravatar
__blackjack__
User
Beiträge: 14047
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@helloBavaria Warum sollte RSS hilfreicher sein als PSS um Speicherlecks zu finden? Eigentlich eignet sich beides nur bedingt, denn man sieht nur das mehr Speicher verwendet wird, aber nicht ob das nun *Lecks* sind oder nicht. Dafür verwendet man eher Werkzeuge wie Valgrind für den C-Teil, und es gibt auch verschiedene Python-Memory-Profiler wo man schauen kann mit welchen Objekte der Speicher verwendet wird.

Für maximale Speicherbelegung kann man unter Linux beispielsweise ``/usr/bin/time --verbose …`` verwenden. Achtung: ohne den kompletten Pfad bekommt man beispielsweise bei der Bash das dort eingebaute ``time``, das kann das nicht.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
helloBavaria
User
Beiträge: 12
Registriert: Donnerstag 17. Februar 2022, 11:32

@__blackjack__ danke für deine Antwort. Mein Gedanke, warum RSS hilfreicher sein könnte war, weil man dann nur auf den einen Prozess schaut, den man analysieren möchte und der Speicherbedarf nicht durch weitere Prozesse beeinflusst wird (zumindest wenn ich das mit RSS und PSS nicht grundsätzlich falsch verstanden habe...). Ich werde mir Valgrind und Python-Memory-Profiler mal anschauen, das klingt nach einem guten Tipp.
Antworten