[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: