Speicherbelegung verstehen (war: Re: OpenSouce Software sowas wie Google-Docs)
Hallo Michelle,
Am Montag, 3. April 2017, 17:49:42 CEST schrieb Michelle Konzack:
> On 2017-04-03 16:34:58 Stefan Baur hacked into the keyboard:
> > Dafür steht Dein Server nicht 2 Stunden unresponsive in der Gegend rum,
> > und Du hast eine Meldung im Logfile, dass der Daemon am Amoklaufen war,
> > weißt also "warum die Kiste gestanden hätte, wenn kein ulimit gesetzt
> > gewesen wäre".
>
> Nicht ganz, denn wenn ich den Reverse-Proxy in Apache einrichte und den
> Daemon starte, werden gut 6MB RAM benoetigt, sobald aber ein Dokument
> geoeffnet wird, explodiert der Speicher.
>
> Ich habe mit ulimits versucht, den Prozess auf 500MB festzunageln, weil
> ich der Meinung war das reicht, aber dann crasht der daemon beim oeffnen
> eines Dokuments.
Hier geht noch so Einiges durcheinander, wie mir gerade auffällt.
ulimit kann ab Kernel 2.6 den physikalischen Speicherverbrauch *nicht* mehr
begrenzen. Einfaches Beispiel:
martin@merkaba:~ -> ulimit -m 10
martin@merkaba:~ -> ulimit -m
10
martin@merkaba:~ -> stress -m 1 --vm-bytes 1G --vm-keep
stress: info: [20854] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
Läuft einfach lustig weiter.
Was ulimit begrenzen kann ist der virtuelle Adreßraum.
martin@merkaba:~ -> ulimit -v 10
martin@merkaba:~ -> ulimit -v
10
martin@merkaba:~ -> stress -m 1 --vm-bytes 1G --vm-keep
Segmentation fault
Das ist aber aus einem einfachen Grund relativ sinnlos: Programme fordern in
der Regel viel mehr virtuellen Adreßraum an, als sie physikalischen Speicher
belegen.
Eine Diskussion um den Speicherbedarf eines Prozesses macht also für
virtuellen Adreßraum, außer auf 32-Bit-Systemen, nicht mal Sinn. Und die
Unterschiede zum tatsächlichen physikalischen Speicherverbrauch sind
beträchtlich.
So zeigt smemstat für Libreoffice Writer mit einem einfachen Brief Folgendes:
PID Swap USS PSS RSS User Command
20613 0.0 B 217.6 M 220.8 M 239.4 M martin /usr/lib/libreoffice/
program/soffice.bin
Während Libreoffice laut ps aus umgerechnet also ca. 1090 MiB virtuellen
Adreßraum anfordert, belegt es gerade mal 239 MiB physikalischen Speicher, von
dem bei anteiliger Anrechnung der verwendeten Bibliotheken gerade mal 221 MiB
übrig bleiben (PSS).
Ohne exakte Angaben klinke ich mich hier nun aus. Ich war vorhin wohl nicht
ganz bei der Sache, sonst hätte ich das gleich gemerkt, dass sie Angaben zum
Speicherverbrauch so ziemlich nutzlos sind.
Ciao,
--
Martin
Reply to: