Speicherbedarf eines Prozesses
Sascha Effert
fermat at uni-paderborn.de
Thu Apr 22 07:55:43 CEST 2010
Am Mittwoch, den 21.04.2010, 17:01 +0200 schrieb Florian Lohoff:
> On Mon, Apr 19, 2010 at 11:54:08AM +0200, Sascha Effert wrote:
> > Hallo,
> >
> > ich habe in C++ eine shared library und ein Programm, welches dies
> > benutzt geschrieben. Ich würde jetzt gerne mit dem Speicherbedarf
> > experimentieren, speziell mit dem, was durch die shared lib verbraucht
> > wird. Momentan habe ich dazu das Programm gestartet und regelmäßig mit
> > ps -p $PID -o rss h
> > den genutzten Speicherbedarf abgefragt. Habe ich damit wirklich den
> > gesamten Speicher, den der Prozess benötigt? Ich muss gestehen, ich
> > blicke durch die verschiednen Parameter nicht durch.
>
> Die RSS ist ja nur ein real life parameter der den best case darstellt.
> wenn dein system memory pressure hat wird das ja weniger. Besser ist es
> die VSZ sich anzuschauen - das ist ja eher die worst case betrachtung.
>
> Ansonsten mal valgrind ansehen - ich meine der spuckt auch stats aus,
> die beinhalten aber IIRC nur malloc d.h. nicht dein text segment deiner libs.
>
> Flo
O.K., danke für die vielen Antworten. Mir war nicht bewusst, dass das so
ein Problem ist. In Java ist das irgendwie einfacher... :-)
Ich werde weiter per ps den Prozess scannen, bessere Werte scheine ich
auch aus dem Prozess selbst heraus nicht zu erhalten ohne erheblichen
Aufwand in das mitzählen bei jedem new/malloc und der Berechnung des
Verbrauchs auf dem Stack zu benötigen.
Als Parameter werde ich VSZ verwenden. Ich hatte tatsächlich vorher
nicht realisiert, dass RSS nicht den geswapten Speicher mit
einberechnet. Sehe ich es richtig, dass auf einem Rechner ohne Swap
immer RSS=VSZ gilt? Ich bin ein wenig verwundert, denn auf meinem gerade
gestarteten Notebook erhalte ich für Evolution RSS 50664 (ca. 50 MB) und
VSZ 198364 (ca. 200 MB). top sagt mir aber, dass ich momentan keinen
SWAP (0 k) verwende. Kann mir das jemand erklären?
tschau
Sascha
More information about the Linux
mailing list