Beim Java™-Heapspeicher (Java Virtual Machine) handelt es sich um eine unabhängige Hauptspeicherzuordnung, durch die sich die Kapazität des Hauptspeichers möglicherweise verringert.
Ab WebSphere Message Broker Version 6.1 wird die JVM mit einer Zuordnung von mindestens 32 MB und maximal 256 MB Speicherbereich erstellt, der für die JVM-Nutzung reserviert ist. Wie bei jeder JVM können Parameter übergeben werden, um die Mindest- und Höchstwerte für die Größe des Heapspeichers festzulegen. Beachten Sie dabei auf 32-Bit-Plattformen, dass JVM Heapspeicher auf Basis der maximalen Größe des Heapspeichers reserviert. Auf 32-Bit-Windows-Systemen werden möglicherweise Warnungen ausgelöst, wenn Sie die Größe des JVM-Heapspeichers auf 512 MB oder mehr setzen.
Sie müssen die zugeordnete maximale Größe des Heapspeichers möglicherweise erhöhen, wenn umfangreiche Nachrichten über die oben aufgelisteten Java-MQSI-Knoten ausgeführt werden sollen.
Um für einen Nachrichtenfluss, der umfangreiche Nachrichten verarbeiten wird, mehr Kapazität zu schaffen, müssen Sie die Mindestgröße des JVM-Heapspeichers verringern, damit der Haupt-Heapspeicher mehr Adressraum belegen kann. Informationen zur Reduktion des JVM-Heapspeichers finden Sie unter Größe des JVM-Heapspeichers festlegen.
Folgende Indikatoren sind die Hauptanzeichen für eine erfolgreiche JVM-Heapspeichereinstellung:
Es hängt von dem Ergebnis ab, das Sie beabsichtigen, wie diese beiden Werte festgelegt werden müssen: Bei einer Stapelanwendung ist ein niedriger GC-Systemaufwand wichtig, während die Pausenzeiten nicht so relevant sind. Bei Echtzeitanwendungen sind hingegen die Pausenzeiten wichtiger als der GC-Systemaufwand.
Häufig können GC-Systemaufwandswerte von weniger als 1 Prozent und Pausenzeiten von unter 1 Sekunde (ausgenommen Komprimierungszyklen) erreichen werden. Wenn der GC-Systemaufwand mehr als 10 Prozent beträgt, kann er normalerweise durch Optimierung gesenkt werden. Pausenzeiten von mehr als 2 Sekunden können in der Regel vermieden werden, normalerweise durch Optimierung zur Vermeidung der Komprimierung.
Die optimalen Werte für eine bestimmte Situation können nur durch Experimentieren mit den Werten und Überwachen der Ergebnisse ermittelt werden, da es zu viele Variablen bei diesem Vorgang gibt, unter anderem die Komplexität des Nachrichtenflusses und die Größe der zu verarbeitenden Nachrichten.
Sie können damit beginnen, eine einzelne Instanz des Nachrichtenflusses kombiniert mit dem Standardwert für die Heapspeichergröße auszuführen. Dann erhöhen Sie die Nachrichtengröße und die Anzahl der Instanzen in kontrollierter Weise bis zu den jeweiligen Höchstwerten. Achten Sie dabei darauf, immer nur eine Änderung auf einmal vorzunehmen. Währenddessen überwachen Sie die JVM-Heapspeichernutzung und GC-Aktivität anhand der Ressourcenstatistik, um sicherzustellen, dass die Größe des Heapspeichers für die Verarbeitung der größten Nachrichten ausreicht, ohne dass die Zielwerte für GC-Systemaufwand und GC-Pausenzeiten überschritten werden. Außerdem sollten Sie die JVM-Heapspeichernutzung regelmäßig überwachen und sicherstellen, dass die empfohlenen Grenzwerte nicht überschritten werden.
Eine detailliertere Analyse können Sie mit der Diagnosekomponente Java Health Center ausführen, die über den IBM Support Assistant verfügbar ist.