|
|
Auf dieser Seite werden wir Tipps & Tricks aus der Java-Welt veröffentlichen. Wir haben die Beiträge mit bestem Wissen und Gewissen recherchiert, können allerdings für die Richtigkeit der Informationen keine Gewährleistung übernehmen.
Die Speichernutzung der Java Virtual Machine ist entscheidend für die gebotene Performance der Applikationsserver. Für die hier vorgestellten Parameter gibt es auf den unterschiedlichen Plattformen (Win, Unix..) auch unterschiedliche Default- Werte. Vor allem für die Windows- Plattform sind diese Werte meistens unbefriedigend. Diese Einstellungen beeinflussen massiv die Speicherallokation sowie die Garbage Collection. Da diese Prozesse in Java transparent ablaufen, ist es besonders wichtig, korrekte Parameter zu nutzen. Wichtig: während der Garbage Collection steht in der JVM alles still! Je seltener ein GC passiert und je weniger Zeit dies in Anspruch nimmt, desto besser wird die Performance des Applikationsservers.
Nachfolgend die wichtigsten Parameter, die es zu beachten gibt:
-xMs: Gibt den minimal zur Verfügung stehenden Speicherplatz an.
-xMx: Gibt den maximal zur Verfügung stehenden Speicherplatz an.
Der optimale Wert hängt sowohl von der Benutzerzahl als auch vom Speicherverhalten der Applikation ab. Der genaue Wert wird am besten mit einem Lasttest ermittelt. Man sollte bedenken, dass die Virtual Machine abstürzen wird (OutOfMemoryException), wenn der Speicherplatz nicht ausreichend dimensioniert ist. Also am besten immer ein bißchen mehr als angenommen vergeben. Wenn xMx=xMs muss die Virtual Machine bei der Speichervergabe weniger rechnen, die Performance wird also verbessert. Dieser Speicherbereich wird aber komplett reserviert, steht also anderweitig nicht zur Verfügung. Die VM hat in diesem Fall auch weniger Spielraum, eventuelle falsche Werte bei der Parametrisierung zu kompensieren.
-XX:NewSize: spezifiziert die Anfangsgröße des Speichers für die so genannte "New Generation".
-XX:MaxNewSize: spezifiziert die Maximalgröße des New Generation Speichers. MaxNewSize sollte immer kleiner als die Hälfte von xMx sein. Bei Nutzung von mehreren Prozessoren sollte die MaxNewSize immer vergrößert werden, da die Speicherallokation zwar verteilbar ist, die Garbage Collection aber nicht. Wir schlagen vor, diesen Wert auf 20% des xMx einzustellen.
Damit die Garbage Collection nachvollziehbar wird, kann man den Kommandozeilenparameter "-verbose:gc" nutzen.
Anbei ein Beispiel für die Parametrisierung der JVM:
-Xms128m -Xmx128m -XX:NewSize=25mXX:MaxNewSize=25mXX:SurvivorRatio=14 -verbose:gc
Für die neuesten JVM wurden viele Optimierungen im Bereich Speicherallokation und Garbage Collection durchgeführt. Falls Performance- Probleme mit älteren JVM bestehen, sollte man einen Umstieg auf eine aktuelle JVM Version (aktuell: 1.4.2) in Betracht ziehen.
Die Optimierung der JVM- Performance sollte vor der Hardware- Aufrüstung des Servers immer durchgeführt werden. Die zu erzielenden Performance- Verbesserungen werden meistens unterschätzt.
Bei Fragen zum Thema JVM- Optimierung nehmen Sie Kontakt mit uns auf.
|
Home > Kundenbereich > Java Tipps & Tricks > |
© OTS Informationstechnologie AG 2001 - 2010 |
|

