Ermittlung des Speicherbedarfs für Java-Anwendungen und WAS-Instanzen

11. November 2008 | Von | Kategorie: Speicher - Storage

NEWSolutions Artikel: Um die Speicheranforderungen einer Java-Anwendung oder einer Instanz eines Web Sphere Application (WAS) Servers zu ermitteln, müssen Sie diese während der Ausführung in der 64-bit JCM profilieren. Es gibt eine Reihe von Tools für diese Aufgabe, aber das schnelle und einfache Verfahren, das wir hier beschreiben


Ergänzung zum Artikel „32-bit JVM für System i“, erschienen in NEWSolutions, Ausgabe März 2008

von Dan Darnell

Artikeleränzung32-bit JVM für System i

Der Autor persönlich

Dan Darnell ist unabhängiger Berater und Autor des Buchs „Java and the AS/400 Second Edition“ (erschienen bei 29th Street Press). Sie erreichen Dan unter dan.darnell(äät)sbcglobel.net.Übersetzt und für den deutschsprachigen Markt überarbeitet von Mathias Spateneder.

Um die Speicheranforderungen einer Java-Anwendung oder einer Instanz eines Web Sphere Application (WAS) Servers zu ermitteln, müssen Sie diese während der Ausführung in der 64-bit JCM profilieren. Es gibt eine Reihe von Tools für diese Aufgabe, aber das schnelle und einfache Verfahren, das wir hier beschreiben, funktioniert normalerweise genauso gut wie die anspruchsvolleren Lösungen.

Der Befehl DMPJVM (JVM-Speicherauszug) produziert eine Momentaufnahme vom Status einer JVM. Für eine Java-Anwendung, die unter der Classic JVM läuft, geben Sie als Parameter für den Befehl DMPJVM den qualifizierten Namen des JVM-Jobs an:

DMPJVM JOB(090123/DAN/JVACMDSRV)

Bei einer WAS-Instanz ist der Jobname vielleicht etwas schwieriger zu ermitteln. Sehen Sie sich eine Liste der aktiven Jobs des Benutzers QEJBSVR an. Der Name, den Sie Ihrer Anwendungsserver-Instanz gegeben haben, sollte als Jobname erscheinen. Für eine Anwendungsserver-Instanz namens DANSVR würde der Befehl DMPJVM also etwa folgendermaßen lauten:

DMPJVM JOB(090100/QEJBSVR/DANSVR)

Suchen Sie in dem Speicherauszug, der mit dem Befehl DMPJVM gedruckt wurde, den Abschnitt „Garbage Collection“, und sehen Sie sich die Informationen unter „Current Values“ an:

Current values
  Heap size: 7944 K
  Garbage collections: 10

Die Angabe “Heap size” zeigt den momentanen Speicherbedarf der Anwendung oder WAS-Instanz an.

Beobachten Sie Ihre Anwendungen zu bestimmten Zeitpunkten (z.B. beim Start, nach einer bestimmten Laufzeit, bei maximaler Auslastung), um ein Gefühl für den Speicherbedarf zu bekommen. Wenn der Heap einer Anwendung bei der Ausführung in der 64-bit JVM nie größer wird als 3 GB, sollte es keine Probleme bei der Ausführung in der 32-bit JVM geben. Wenn eine Anwendung mehr als 3 GB Speicher benötigt, ist mit zu berücksichtigen, dass sie in der 32-bit JVM wahrscheinlich weniger Speicher benötigt als in der 64-bit JVM.

Leider gibt es keinen absoluten Faktor, den man anwenden könnte. Design und Implementierung einer Anwendung haben viel Einfluss auf den Speicherbedarf und auch auf die Auswirkung von 32-bit-Adressen auf die Heap-Größe. Im Durchschnitt kann man von etwa 35 Prozent weniger Speicherbedarf bei der 32-bit JVM ausgehen.

Die zuverlässigste Aussage über die Ausführbarkeit einer Anwendung in der 32-bit JVM liefern sorgfältige Belastungstests in dieser Umgebung.

Schlagworte: , , , , , , , , , , , , , , , , , , , , , ,

Schreibe einen Kommentar

Sie müssen eingeloggt sein, um einen Kommentar schreiben.