Speicherbedarf eines Prozesses

Jan 'RedBully' Seiffert redbully at cc.hs-owl.de
Fri Apr 23 17:47:23 CEST 2010


Sascha Effert schrieb:
> Hallo,
> 
[snip]
> Theoretisch ich schalte auf der Maschine den swap komplett ab, wie
> zuverlässig ist dann die Aussage von RSS? Selbst verständlich ist der
> von mir verwendete Speicher darin immer noch auf page size Granularität,
> aber das ist o.k., denn wenn ich Dich richtig verstehe, kann den
> restlichen Speicher eh kein anderer Prozess erhalten. Also sollte mir
> das doch weiter helfen, oder?
> 

Die einfache Antwort:
Ja

Die komplizierte Antwort:
Kommt drauf an ob du das extrinsisch oder intrinsisch betrachten willst.

Extrinsisch ist die RSS das was das Programm braucht, was die Maschine eben an
RAM haben muss damit deine Chose laeuft. Punkt. (Naja, plus SHR, plus System
overhead, etc.). Swap aus ist dabei vernuenftig, den swap heist meist -> tot.
Das Programm alloziert den Speicher ja nicht zum Spass.

Intrinsisch, aus Sicht des Programms kann es gut sein das in dieser Nummer eine
Menge overhead steckt, das Programm eigentlich grade garnicht soviel Speicher
braucht, er halt in den ganzen Abstraktionsebenen festheangt.
Wenn man dann man dem nachgeht wo der overhead herkommt, kann man vielleicht mit
ein paar kleinen aenderungen die RSS "ordentlich" senken.

Ein Beispiel um zu verdeutlichen was ich meine:
Der Stack eines Programms (oder threads) ist erstmal ein mmap von Anon speicher,
dahinter die sogenannte guard page. Wenn dein Programm jetzt mehr stack braucht,
laeuft es in die guard page, der stack waechst nach unten. Mehr Speicherseiten
werden Stueck fuer Stueck in den Stack gefaultet. Das ist soweit erstmal alles fit.
Wo man sich jetzt ins Knie schiessen kann: Beim Programmstart brauchst du aus
irgendeinem Grund viel Stack (Grosse Config/Cache Datei wird in Puffer auf Stack
geladen, irgendein rekursiver Algo bereitet den run vor), Dein Stack waechst aus
diesem "once-off" Grund auf enorme Groessen (Sagen wir 2 MB), der restliche Lauf
des Programms braucht den Stack aber nicht mehr so gross (oft irgendwas im
Bereich < 64k), denoch hast du den Speicher "ge-captured".

> tschau
> 
> Sascha
> 

Gruss
	Jan

[snip]

-- 
Fachbegriffe der Informatik:
363: XSLT
    Wir kombinieren das Paradigma von awk mit der sprachlichen Eleganz von Cobol
    und den programmiertechnischen Verrenkungen von funktionalen Sprachen unter
    sorgfältiger Umgehung aller möglichen Vorteile. (Kristian Köhntopp)



More information about the Linux mailing list