Begrenzung für die Größe des Java-Heapspeichers

Java™ bietet viele Services, um die Codierung von Java-Anwendungen zu vereinfachen. Einer dieser Services betrifft die Speicherverwaltung.

Die Speicherverwaltung von Java ordnet große Speicherblöcke zu und verwendet diese für Speicheranforderungen der Anwendung. Dieser von Java verwaltete Speicher wird als Java-Heapspeicher bezeichnet. Die periodische Garbage-Collection (Defragmentierung) gibt nicht verwendeten Speicherplatz im Heapspeicher wieder frei und reduziert die Größe des Heapspeichers. Beachten Sie, dass zur Speicherung von CPU-Zyklen die Garbage-Collection tendenziell wartet, bis der belegte Speicher tatsächlich gebraucht wird; daher bleibt Speicher, der nicht mehr verwendet wird, länger zugeordnet als absolut notwendig (und wird somit ausgelagert).

Die maximale Größe des Java-Heapspeichers wird in rse.env mit der Anweisung Xmx definiert. Sie müssen einen Wert von 256 MB oder höher angeben. Bei der Ausführung im 64-Bit-Modus versucht Java, den Heapspeicher oberhalb der 2-GB-Grenze zuzuordnen, wodurch Speicherplatz unterhalb der 2-GB-Grenze freigegeben wird.

Jeder RSE-Thread-Pool (der die Clientaktionen bedient) ist eine separate Java-Anwendung und verfügt somit über einen persönlichen Java-Heapspeicher. Beachten Sie, dass alle Thread-Pools dieselbe Konfigurationsdatei rse.env verwenden und daher denselben Grenzwert für die Größe des Java-Heapspeichers haben.

Die Nutzung des Java-Heapspeichers durch den Thread-Pool hängt stark von den Aktionen ab, die von den verbundenen Clients ausgeführt wurden. Eine regelmäßige Überwachung der Belegung des Heapspeichers ist erforderlich, um die optimale Begrenzung der Größe des Heapspeichers festlegen zu können. Mit dem Bedienerbefehl modify display process können Sie die Belegung des Java-Heapspeichers durch RSE-Thread-Pools überwachen.