[linux-l] Speichernutzung Sun JVM 64Bit

Peter Ross Peter.Ross at bogen.in-berlin.de
Do Nov 27 12:51:36 CET 2008


Hi Frank,

On Thu, 27 Nov 2008, Frank Hofmann wrote:

> Hallo,
> 
> * Peter Ross <Peter.Ross at bogen.in-berlin.de> [081122 02:56]:
> > 
> > Unter 32 Bit sind diese Pools auf 2GB begrenzt, was uns bei meinem 
> > früheren Arbeitgeber ab und an Ärgen beschert hat (Wer mag schon "Out of 
> > memory"-Fehler?)
> 
> Gut, d.h. mehr als 2GB geht nicht. Der Rest wird also geswapped :-/

Kein swapping. 2GB ist der maximal addressierbare Adressbereich für die 
einzelnen Komponenten (Heap z.B.) innerhalb der JVM, mehr geht nicht unter 
32 Bit. Danach ist "Out of Memory".

Java swappt nicht, sondern saugt sich voll, und versucht bei knappen 
Ressourcen sich mittels Garbage Collection überflüssiger 
Speicherallozierungen zu erledigen.

Da die Garbage Collection periodisch weite Teile des JVM-Heaps anfaßt, 
(der allozierte Bereich sieht in einer graphischen Darstellung wie eine 
Säge aus - allozieren, allozieren, es wird knapp, Garbage Collection zum 
reduzieren, allozieren..),

ist es für das drunterliegende Betriebssysten schwer zu erkennen, welcher 
Adressbereich denn lange nicht mehr benötigt wurde, und geswappt werden 
könnte.

Eine Java-Applikation, die auf Swap zurückgreifen muß, kann man nach 
meiner Erfahrung praktisch vergessen.

Naja, so siehts halt aus, wenn das Speichermanagement innerhalb der JVM 
geschachtelt nochmal erfunden wird..

> Bei unserem Fall kann es vorkommen, dass Files >10 GB entstehen, die
> wir gern im RAM halten möchten.

Hast Du _viel_ RAM?

> Alles was irgendwie unnötig zeit braucht (Daten auf Platte schreiben 
> etc) soll möglichst wegfallen oder minimiert werden.

Du könntest stattdessen eine RAM-Disk anlegen, auf der Du schreibst. Das 
umgeht eine Virtualisierungs-Ebene und Du kannst mit gewöhnlichen 
Fileoperationen drauf zugreifen.

Ich bin nicht über die aktuellen Größen von RAID-Array-Caches informiert, 
habe länger schon keine Angebotssuche in der Richtung betrieben, aber die 
Caches sind so klein oft auch nicht, so daß oft das Schreiben tatsächlich 
in diesem stattfindet, so daß man nicht auf die Platten warten muß (der 
Cache ist batteriegepuffert und kann so bei Stromausfall noch gesichert 
werden).

Es gibt der Varianten viele. Hoffentlich findest Du die richtige:-)

Es grüßt
Peter

P.S. "Linux, Layout und Satz.." ich bin mir über Deinen Nachnamen nicht 
mehr sicher, aber vielleicht kennen wir uns.. PPS? Wie auch immer, Grüße 
aus Melbourne


Mehr Informationen über die Mailingliste linux-l