[linux-l] Speichernutzung Sun JVM 64Bit

Peter Ross Peter.Ross at bogen.in-berlin.de
Sa Nov 22 02:55:53 CET 2008


Hi,

On Fri, 21 Nov 2008, Frank Hofmann wrote:

> weiss jemand von Euch, wieviel RAM man mit der
> 64-bit-Variante der Sun JVM unter Linux ansprechen 
> kann?

Prinzipiell erst einmal die genannten Limitierungen durch die Hardware.

> Die 32-bit-Variante hat IMHO eine Begrenzung 
> auf etwa 1GB.


Nein.

Innerhalb der JVM gibt es verschiedene allozierbare Speicherpools, die 
beim Start der JVM angegeben werden können.

Hier als Beispiel die, die ich beim Starten eines Tomcats in setenv.sh 
derzeit setze:

#   MEM_PERM_OPTS (-XX:MaxPermSize)
#   MEM_MIN_HEAP_OPTS (-Xms)
#   MEM_MAX_HEAP_OPTS (-Xmx)

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?)

Jetzt arbeite ich mit der 64-Bit-Version von Red Hat Enterprise 5, ich 
habe zumindest selbst erfolgreich bis zu 4GB für MEM_MAX_HEAP_OPTS 
alloziert. Mir sind außer den oben genannten Hardwarebegrenzungen keine 
weiteren bekannt, bei Maschinen mit 8GB RAM im Einsatz bin ich aber lange 
nicht in der Terabyte-Liga, so daß mir solche Erfahrungen fehlen.

> Entsteht bei der Nutzung viel Overhead im Vergleich zur 32-bit-Variante, 
> oder hält sich das eher in Grenzen?

Ich habe bei der Migration von Tomcat-Applikationen von 32 zu 64 Bit keine 
Overhead-Probleme bemerkt. Subjektiv - exaktes Benchmarking habe ich nicht 
betrieben.

Prinzipiell sollte man die o.g. Werte eher klein halten. Da die Garbage 
Collection ziemlich CPU-intensiv ist, bei "grossen Aufräumarbeiten" von 
viel Speicher zu Engpässen bis hin zur zeitweisenden Blockde der 
Applikation führen. Leider ist das besonders unter Linux störend zu 
bemerken (Eine von Entwicklern benutzte FreeBSD-Maschine kommt damit 
besser zurecht).

So sind die Defaults für unsere Tomcats momentan bei 512 MB, und das 
reicht bis auf wenige Ausnahmen aus, und kommt einer gleichmäßig 
zuckelnden, regelmäßig und schnell ausgeführte Garbarage Collection 
betreibenden Applikation zu gute.

Oft verbirgt mehr Heap nur Memory-Leaks, die bei kleineren Werten eher 
bemerkt werden und so (hoffentlich) eher von den Entwicklern ausgemerzt 
werden.

Es grüßt
Peter


Mehr Informationen über die Mailingliste linux-l