JVM-Einstellungen

Verwenden Sie diese Seite, um die JVM-Konfigurationseinstellungen (Java Virtual Machine) eines Prozesses für einen Anwendungsserver anzuzeigen und zu ändern.

Stellen Sie zum Anzeigen dieser Seite der Administrationskonsole eine Verbindung zur Administrationskonsole her, und navigieren Sie zur Anzeige "Java Virtual Machine".

[AIX Solaris HP-UX Linux Windows] [iSeries] Für i5/OS und verteilte Plattformen klicken Sie auf Server > Servertypen > WebSphere-Anwendungsserver > Servername. Klicken Sie anschließend im Abschnitt "Serverinfrastruktur" auf Java- und Prozessverwaltung > Prozessdefinition > Java Virtual Machine

[z/OS] Folgen Sie für die Plattform z/OS einem der folgenden Pfade:
Anwendungsserver Klicken Sie auf Server > Servertypen > WebSphere-Anwendungsserver > Servername.Klicken Sie anschließend im Abschnitt "Serverinfrastruktur" auf Java- und Prozessverwaltung > Prozessdefinition > Steuerung > Java Virtual Machine
Deployment Manager Klicken Sie auf Systemverwaltung > Deployment Manager. Klicken Sie anschließend im Abschnitt "Serverinfrastruktur" auf Java- und Prozessverwaltung > Prozessdefinition > Steuerung > Java Virtual Machine
Node Agent Klicken Sie auf Systemverwaltung > Node Agent > Node_Agent. Klicken Sie anschließend im Abschnitt "Serverinfrastruktur" auf Java- und Prozessverwaltung > Prozessdefinition > Java Virtual Machine
[AIX Solaris HP-UX Linux Windows] [iSeries] Folgen Sie für die Plattform i5/OS und verteilte Plattformen einem der folgenden Pfade:
Anwendungsserver Klicken Sie auf Server > Servertypen > WebSphere-Anwendungsserver > Servername.Klicken Sie anschließend im Abschnitt "Serverinfrastruktur" auf Java- und Prozessverwaltung > Prozessdefinition > Java Virtual Machine
Deployment Manager Klicken Sie auf Systemverwaltung > Deployment Manager. Klicken Sie anschließend im Abschnitt "Serverinfrastruktur" auf Java- und Prozessverwaltung > Prozessdefinition > Java Virtual Machine
Node Agent Klicken Sie auf Systemverwaltung > Node Agent > Node_Agent. Klicken Sie anschließend im Abschnitt "Serverinfrastruktur" auf Java- und Prozessverwaltung > Prozessdefinition > Java Virtual Machine

Register 'Konfiguration'

Klassenpfad

Gibt den Standardklassenpfad an, in dem der Code der virtuellen Java-Maschine (JVM) nach Klassen sucht.

Wenn Sie diesem Feld einen Klassenpfad hinzufügen müssen, geben Sie jeden einzelnen Klassenpfadeintrag in einer separaten Tabellenzeile an. Es ist nicht erforderlich, am Ende eines Eintrags einen Doppelpunkt bzw. ein Semikolon hinzuzufügen.

Die einzigen Klassenpfade, die diesem Feld hinzugefügt werden sollten, sind die Klassenpfad, die die Positionen der folgenden Komponenten angeben:
  • Prüf- oder Überwachungstool für Ihr System,
  • JAR-Dateien für ein Produkt, das auf der Basis dieses Produkts ausgeführt wird,
  • Patch-Codes oder -Fixes für die JVM-Diagnose.
Es können Verarbeitungsfehler auftreten, wenn Sie diesem Feld Klassenpfade hinzufügen, die die Positionen der folgenden Komponenten angeben:
  • JAR-Dateien für Ressourcenprovider, wie z. B. DB2. Die Pfade dieser JAR-Dateien müssen den entsprechenden Providerklassenpfaden hinzugefügt werden.
  • JAR-Dateien von Benutzern, die von einer oder mehreren Anwendungen verwendet werden, die Sie im Produkt ausführen. Der Pfad dieser Art von JAR-Dateien muss in jeder Anwendung, die diese JAR-Datei erfordert, oder in gemeinsam genutzten Bibliotheken angegeben werden, die dem Server zugeordnet sind.
  • JAR-Dateien für Erweiterungen. Wenn Sie Ihrem System eine JAR-Datei für eine Erweiterung hinzufügen müssen, müssen Sie die angepasste JVM-Eigenschaft "ws.ext.dirs" verwenden, um den absoluten Pfad dieser JAR-Datei anzugeben. Sie können die JAR-Datei auch in das Verzeichnis WAS_HOME/lib/ext/ stellen, aber die Verwendung der angepassten JVM-Eigenschaft "ws.ext.dirs" ist die empfohlene Methode für die Angabe des Pfads einer JAR-Datei für eine Erweiterung.
Datentyp String
Boot-Klassenpfad

Gibt die Klassen des Bootprogramms und die Ressourcen für den JVM-Code an. Diese Option ist nur für JVM-Anweisungen verfügbar, die Bootstrap-Klassen und -Ressourcen unterstützen.

Wenn Sie diesem Feld einen Klassenpfad hinzufügen müssen, geben Sie jeden einzelnen Klassenpfadeintrag in einer separaten Tabellenzeile an. Es ist nicht erforderlich, am Ende eines Eintrags einen Doppelpunkt bzw. ein Semikolon hinzuzufügen.

Wenn Sie dem Feld mehrere Klassenpfade hinzufügen müssen, können Sie je nach Betriebssystem, auf dem die JVM ausgeführt wird, einen Doppelpunkt (:) oder ein Semikolon (;) als Trennzeichen für die Klassenpfade verwenden.

Wenn Sie dem Feld mehrere Klassenpfade hinzufügen müssen, können Sie je nach Betriebssystem des Knotens einen Doppelpunkt (:) oder ein Semikolon (;) als Trennzeichen für die Klassenpfade verwenden.

Die einzigen Klassenpfade, die diesem Feld hinzugefügt werden sollten, sind die Klassenpfad, die die Positionen der folgenden Komponenten angeben:
  • Prüf- oder Überwachungstool für Ihr System,
  • JAR-Dateien für ein Produkt, das auf der Basis dieses Produkts ausgeführt wird,
  • Patch-Codes oder -Fixes für die JVM-Diagnose.
Es können Verarbeitungsfehler auftreten, wenn Sie diesem Feld Klassenpfade hinzufügen, die die Positionen der folgenden Komponenten angeben:
  • JAR-Dateien für Ressourcenprovider, wie z. B. DB2. Die Pfade dieser JAR-Dateien müssen den entsprechenden Providerklassenpfaden hinzugefügt werden.
  • JAR-Dateien von Benutzern, die von einer oder mehreren Anwendungen verwendet werden, die Sie im Produkt ausführen. Der Pfad dieser Art von JAR-Dateien muss in jeder Anwendung, die diese JAR-Datei erfordert, oder in gemeinsam genutzten Bibliotheken angegeben werden, die dem Server zugeordnet sind.
  • JAR-Dateien für Erweiterungen. Wenn Sie Ihrem System eine JAR-Datei für eine Erweiterung hinzufügen müssen, müssen Sie die angepasste JVM-Eigenschaft "ws.ext.dirs" verwenden, um den absoluten Pfad dieser JAR-Datei anzugeben. Sie können die JAR-Datei auch in das Verzeichnis WAS_HOME/lib/ext/ stellen, aber die Verwendung der angepassten JVM-Eigenschaft "ws.ext.dirs" ist die empfohlene Methode für die Angabe des Pfads einer JAR-Datei für eine Erweiterung.
Ausführliche Ausgabe zum Laden der Klasse

Bei Auswahl dieser Option werden ausführliche Debug-Nachrichten zum Laden der Klasse ausgegeben. Standardmäßig wird der ausführliche Modus für das Laden von Klassen nicht aktiviert.

[AIX Solaris HP-UX Linux Windows] Wenn die ausführliche Ausgabe für das Laden von Klassen aktiviert ist, wird die Debug-Ausgabe an eines der nativen Prozessprotokolle gesendet.

Datentyp Boolean
Standardeinstellung false
Ausführliche Ausgabe zur Garbage-Collection

Bei Auswahl dieser Option werden ausführliche Debug-Nachrichten zur Garbage-Collection ausgegeben. Standardmäßig ist die ausführliche Ausgabe nicht aktiviert.

[AIX Solaris HP-UX Linux Windows] Wenn die ausführliche Ausgabe für die Garbage-Collection aktiviert ist, wird die Debug-Ausgabe an eines der nativen Prozessprotokolle gesendet.

,

Datentyp Boolean
Standardeinstellung false

Bei Auswahl dieser Option wird bei jeder Ausführung des Garbage-Collectors ein Bericht in den Ausgabedatenstrom geschrieben. Dieser Bericht gibt Aufschluss darüber, wie der Java-Garbage-Collection-Prozess funktioniert.

Sie können den verboseGC-Bericht verwenden, um Folgendes zu ermitteln:
  • Wie viel Zeit verbringt die JVM mit der Garbage-Collection.
    Im Idealfall sollte die JVM weniger als 5 Prozent ihrer Verarbeitungszeit für die Garbage-Collection aufwenden. Sie können den Prozentsatz der für die Garbage-Collection erforderlichen Zeit berechnen, indem Sie die Zeit bis zum Abschluss der Garbage-Collection durch die Zeit seit dem letzten AF dividieren und das Ergebnis mit 100 multiplizieren. Beispiel:
    83,29/3724,32 * 100 = 2,236 Prozent
    
    

    Wenn die GC mehr als 5 % der Zeit benötigt und häufig ausgeführt wird, müssen Sie ggf. den Java-Heap-Speicher vergrößern.

  • Wenn der zugeordnete Heap-Speicher mit jeder Garbage-Collection anwächst.

    Um festzustellen, ob der zugeordnete Heap-Speicher an Größe zunimmt, sehen Sie sich den Prozentsatz des Heap-Speichers an, der nach jedem Garbage-Collection-Zyklus nicht belegt ist, und stellen Sie sicher, dass dieser Prozentsatz nicht weiter abnimmt. Wenn der Prozentsatz an freiem Speicherplatz weiter abnimmt, nimmt die Größe des Heap-Speichers von Garbage-Collection zu Garbage-Collection allmählich zu. Diese Situation kann auf einen Speicherverlust in der Anwendung hinweisen.

[z/OS] Auf der Plattform z/OS können Sie die Informationen zum JVM-Heap-Speicher auch an der MVS-Konsole mit dem Befehl modify display, jvmheap anzeigen. Zusätzlich können Sie die Datensätze zur Serveraktivität und die Intervall-SMF-Datensätze überprüfen. Die Größe des Java-Heap-Speichers steht auch der PMI zur Verfügung und kann mit dem Tivoli Performance Viewer überwacht werden.

Ausführliche Ausgabe zu JNI

Bei Auswahl dieser Option werden ausführliche Debug-Nachrichten zu den Aufrufen nativer Methoden ausgegeben. Standardmäßig ist die ausführliche Ausgabe für JNI-Aktivitäten nicht aktiviert.

Datentyp Boolean
Standardeinstellung false
Anfangsgröße des Heap-Speichers

Gibt die Anfangsgröße des Heap-Speichers für die JVM an. Wenn dieses Feld leer bleibt, wird der Standardwert verwendet.

[z/OS] Auf der Plattform z/OS ist die Standardeinstellung für die Standardanfangsgröße des Heap-Speichers für den Controller 48 und für den Servant 128. Diese Standardwerte gelten für 31-Bit- und 64-Bit-Konfigurationen.

[AIX Solaris HP-UX Linux Windows] [iSeries] Für i5/OS und verteilte Plattformen ist die Standardanfangsgröße des Heap-Speichers 50 MB.

Bewährte Verfahren: Diese Standardwerte sind für die meisten Anwendungen ausreichend. bprac
[iSeries] Fehler vermeiden: Auf der Plattform i5/OS muss die Anfangsgröße des Heap-Speichers immer kleiner sein als die maximale Größe des Heap-Speichers. Verwenden Sie für die beiden Eigenschaften nie denselben Wert. gotcha

Die Startzeit kann sich verkürzen, wenn Sie den Wert für diese Einstellung erhöhen. Die Anzahl der Garbage-Collection-Durchläufe wird reduziert, wodurch eine Durchsatzsteigerung von 10 % realisiert werden kann.

Im Allgemeinen verbessert sich der Durchsatz durch Vergrößern des Java-Heap-Speichers, solange der Heap-Speicher in den physischen Speicher passt. Wenn die Größe des Heap-Speichers den verfügbaren physischen Speicher überschreitet und Paging stattfindet, nimmt die Leistung erheblich ab.

Maximale Größe des Heap-Speichers

Gibt die maximale Größe des Heap-Speichers für die JVM an. Wenn dieses Feld leer bleibt, wird der Standardwert verwendet.

[z/OS] Für z/OS ist der Standardwert für die maximale Größe des Heap-Speichers 256 MB. Dieser Standardwert gilt für 31-Bit- und 64-Bit-Konfigurationen.

Die Startzeit kann sich verkürzen, wenn Sie die maximale Größe des Heap-Speichers erhöhen. Durch eine Erhöhung der maximalen Größe des Heap-Speichers können Sie die Anzahl der Garbage-Collection-Durchläufe reduzieren und damit eine Durchsatzsteigerung von 10 % realisieren.

Im Allgemeinen verbessert sich der Durchsatz durch das Erhöhen dieser Einstellung, solange der Heap-Speicher in den physischen Speicher passt. Wenn die Größe des Heap-Speichers den verfügbaren physischen Speicher überschreitet und Paging stattfindet, nimmt die Leistung erheblich ab. Deshalb ist es wichtig, dass der Wert, den Sie für diese Eigenschaft definieren, so gewählt ist, dass die physische Speicherkapazität für den Heap-Speicher ausreicht.

[z/OS] Um Paging zu verhindern, müssen Sie für diese Eigenschaft einen Wert angeben, der jedem Prozessor mindestens 256 MB an physischem Hauptspeicher und jedem Anwendungsserver mindestens 512 MB an physischem Hauptspeicher zugesteht. Wenn die Prozessorauslastung wegen Pagings gering ist, erhöhen Sie, sofern möglich, den verfügbaren Speicher anstelle der maximalen Größe des Heap-Speichers. Eine Erhöhung der maximalen Größe des Heap-Speichers kann die Leistung verringern, anstatt sie zu verbessern.

[iSeries] Wenn diese Eigenschaft auf der Plattform i5/OS auf 0 gesetzt wird, wird der Garbage-Collector nur ausgeführt, wenn der Schwellenwert für den Garbage-Collector erreicht ist. Wird ein anderer Wert als 0 angegeben, wird der Garbage-Collector ausgeführt, sobald die Heap-Speichergröße den angegebenen Maximalwert erreicht. Anders als bei der normalen Garbage-Collection müssen beim Erreichen der maximalen Größe jedoch allen Anwendungs-Threads warten, bis der Garbage-Collection-Prozess abgeschlossen ist, und werden erst danach fortgesetzt. Dies kann zu unerwünschten Wartezeiten führen. Deshalb sollten Sie die maximale Heap-Speichergröße als Sicherheitsnetz verwenden, um Zeiten mit unerwartetem Anwachsen des Heap-Speichers zu bewältigen und sicherzustellen, dass der Heap-Speicher nicht größer wird als der verfügbare Speicher. Unter normalen Umständen sollte die angegebene maximale Heap-Speichergröße nicht erreicht werden.

Bewährte Verfahren: Diese Standardwerte sind für die meisten Anwendungen angemessen. Aktivieren Sie die Eigenschaft Ausführliche Ausgabe zur Garbage-Collection, wenn Sie der Meinung sind, dass die Garbage-Collection zu häufig stattfindet. Wenn die Garbage-Collection zu häufig stattfindet, sollten Sie die maximale Größe für den JVM-Heap-Speicher heraufsetzen. bprac
HProf ausführen [AIX Solaris HP-UX Linux Windows] [iSeries]

Bei Auswahl dieser Option wird die Unterstützung für den HProf-Profiler aktiviert. Wenn Sie einen anderen Profiler verwenden möchten, geben Sie mit der Einstellung HProf-Argumente die Einstellungen für den angepassten Profiler an. Standardmäßig ist die Unterstützung für den HProf-Profiler nicht aktiviert.

Wenn Sie die Eigenschaft HProfs ausführen auf true einstellen, müssen Sie Befehlszeilenparameter für Profiler als Werte für die Eigenschaft HProf-Parameter angeben.

Datentyp Boolean
Standardeinstellung false
HProf-Argumente [AIX Solaris HP-UX Linux Windows] [iSeries]

Gibt die Befehlszeilenparameter für Profiler an, die an den JVM-Code, der den Anwendungsserverprozess startet, übergeben werden sollen. Sie können nur dann Argumente angeben, wenn die Unterstützung für HProf-Profiler aktiviert ist.

HProf-Parameter sind nur erforderlich, wenn die Eigenschaft "HProfs ausführen" auf true eingestellt ist.

Debug-Modus

Gibt an, ob die JVM im Debug-Modus ausgeführt wird. Standardmäßig wird die Unterstützung für den Debug-Modus nicht aktiviert.

Wenn Sie die Eigenschaft Debug-Modus auf true einstellen, müssen Sie Debug-Befehlszeilenargumente als Werte für die Eigenschaft Debug-Argumente angeben.

Datentyp Boolean
Standardeinstellung false
Debug-Argumente

Gibt die Befehlszeilenargumente für den Debugger an, die an den JVM-Code übergeben werden, der den Anwendungsserverprozess startet. Sie können Argumente angeben, wenn die Eigenschaft Debug-Modus auf true eingestellt ist.

Wenn Sie das Debugging in mehreren Anwendungsservern auf demselben Knoten aktivieren, müssen Sie sicherstellen, dass für das Adressargument nicht jedes Mal derselbe Wert angegeben wird. Das Adressargument definiert den Port, der für das Debugging verwendet wird. Wenn derselbe Debug-Port für zwei Server, in denen das Debugging aktiviert ist, konfiguriert wird, können die Server unter Umständen nicht ordnungsgemäß gestartet werden. Beispiel: Beide Server sind mit dem Debug-Argument address=7777 konfiguriert, dem Standardwert für das Debug-Adressargument.

Wenn Sie das Debugging in mehreren Anwendungsservern aktivieren, müssen Sie sicherstellen, dass für das Adressargument nicht jedes Mal derselbe Wert angegeben wird. Das Adressargument definiert den Port, der für das Debugging verwendet wird. Wenn derselbe Debug-Port für zwei Server, in denen das Debugging aktiviert ist, konfiguriert wird, können die Server unter Umständen nicht ordnungsgemäß gestartet werden. Beispiel: Beide Server sind mit dem Debug-Argument address=7777 konfiguriert, dem Standardwert für das Debug-Adressargument.

Datentyp String
Einheiten Befehlszeilenargumente für Java
Generische JVM-Argumente

Gibt die Befehlszeilenargumente an, die an den JVM-Code übergeben werden, der den Anwendungsserverprozess startet.

Sie können die folgenden optionalen Befehlszeilenargumente im Feld Generische JVM-Argumente angeben. Wenn Sie mehrere Argumente eingeben, müssen Sie ein Leerzeichen als Trennzeichen zwischen den Argumenten verwenden.
Fehler vermeiden: Wenn das Argument nur für IBM Developer Kit bestimmt ist, können Sie es nicht für andere JVMs anderer Provider, wie z. B. Microsoft oder Hewlett-Packard, verwenden.gotcha
  • [z/OS] [AIX Solaris HP-UX Linux Windows] hotRestartSync:

    Geben Sie hotRestartSync an, um das Feature "Hot Restart Sync" des Synchronisationsservice zu aktivieren. Dieses Feature teilt dem Synchronisationsservice mit, dass die Installation in einer Umgebung ausgeführt wird, in der keine Konfigurationsaktualisierungen vorgenommen werden, wenn der Deployment Manager nicht gestartet ist. Deshalb muss der Service keinen vollständigen Repository-Vergleich durchführen, wenn der Deployment-Manager- oder Node-Agent-Server erneut gestartet wird. Wenn Sie dieses Feature aktivieren, verbessert sich die Effizienz der ersten Synchronisationsoperation nach einem Neustart von Deployment Manager oder Node Agent, insbesondere für Installationen, die Zellen mit unterschiedlichen Releases, mehreren Knoten und mehreren Anwendungen enthalten.

  • [AIX Solaris HP-UX Linux Windows] [z/OS] -Xquickstart
    Geben Sie -Xquickstart an, wenn die Erstkompilierung auf einer niedrigeren Optimierungsstufe stattfinden soll als im Standardmodus. Später können Sie die Kompilierung in Abhängigkeit von den Probeergebnissen auf der Optimierungsstufe im Standardmodus erneut durchführen.
    Bewährte Verfahren: Verwenden Sie -Xquickstart für Anwendungen, für die eine frühere angemessene Geschwindigkeit wichtiger ist als der langfristige Durchsatz. In einigen Debug-Szenarios, Testläufen und Tools mit kurzen Ausführungszeiten können Sie die Startzeit um 15 bis 20 % verkürzen.bprac
    [iSeries] Fehler vermeiden: i5/OS unterstützt dieses Argument nicht. gotcha
  • [AIX Solaris HP-UX Linux Windows] [z/OS] -Xverify:none

    Geben Sie -Xverify:none an, wenn Sie die Phase mit der Überprüfung der Klassen beim Laden der Klassen überspringen möchten. Mit -Xverify:none wird die Java-Klassenüberprüfung inaktiviert, womit eine Verbesserung bei der Startzeit zwischen 10 und 15 % erreicht werden kann. Es werden jedoch keine beschädigten oder ungültigen Klassendaten gefunden, wenn dieses Argument angegeben ist. Wenn beschädigte Klassendaten geladen werden, kann die Java Virtual Machine (JVM) auf unerwartete Weise reagieren oder sogar ausfallen.

    Fehler vermeiden:
    • Verwenden Sie dieses Argument nicht, wenn Sie Änderungen am Bytecode vornehmen, da die JVM beim Auftreten von Instrumentierungsfehlern ausfallen kann.
    • Sollte die JVM, wenn dieses Argument aktiviert ist, ausfallen oder unerwartet reagieren, entfernen Sie diese Option als erste Maßnahme, wenn Sie Ihr JVM-Problem untersuchen.
    • [iSeries] i5/OS unterstützt dieses Argument nicht.
    gotcha
  • [AIX Solaris HP-UX Linux Windows] [z/OS] -Xnoclassgc

    Geben Sie -Xnoclassgc an, wenn Sie die Garbage-Collection für Klassen inaktivieren möchten. Dieses Argument führt zu einer erhöhten Wiederverwendung von Klassen und einer geringfügig besseren Leistung. Die Ressourcen dieser Klassen bleiben jedoch im Gebrauch, selbst wenn die Klassen nicht aufgerufen werden. Sie können die Konfigurationseinstellung verbose:gc verwenden, wenn Sie die Garbage-Collection überwachen möchten. Anhand der Ausgabe können Sie den Leistungseinfluss der Zurückforderung dieser Ressourcen bestimmen. Wenn dieselben Klassen mehrfach von der Garbage-Collection erfasst werden, sollten Sie die Garbage-Collection inaktivieren. Die Garbage-Collection für Klassen ist standardmäßig aktiviert.

    [iSeries] Fehler vermeiden: i5/OS unterstützt dieses Argument nicht. Sie müssen -noclassgc verwenden, um die Garbage-Collection für Klassen auf diese Plattform zu inaktivieren. gotcha
  • [AIX Solaris HP-UX Linux Windows] [z/OS] -Xgcthreads

    Geben Sie -Xgcthreads an, wenn Sie mehrere Garbage-Collection-Threads gleichzeitig verwenden möchten. Diese Garbage-Collection-Techniken sind als parallele Garbage-Collection bekannt. Dieses Argument ist nur für IBM Developer Kit gültig.

    Wenn Sie diesen Wert im Feld Generische JVM-Argumente eingeben, geben Sie auch die Anzahl der Prozessoren an, die auf der Maschine ausgeführt werden. Werden beispielsweise drei Prozessoren auf der Maschine ausgeführt, geben Sie -Xgcthreads 3 an. Auf einem Knoten mit n Prozessoren sind standardmäßig n Threads verfügbar.

    Bewährte Verfahren: Sie müssen parallele Garbage-Collection verwenden, wenn Ihre Maschine mehrere Prozessoren hat. bprac
    [iSeries] Fehler vermeiden: i5/OS unterstützt dieses Argument nicht. gotcha
  • [AIX Solaris HP-UX Linux Windows] [z/OS] -Xnocompactgc

    Geben Sie -Xnocompactgc an, wenn Sie die Komprimierung für den Heap-Speicher inaktivieren möchten. Die Komprimierung des Heap-Speichers ist die aufwendigste Garbage-Collection-Operation. Wenn Sie IBM Developer Kit verwenden, sollten Sie die Komprimierung des Heap-Speichers vermeiden. Wenn Sie die Komprimierung des Heap-Speichers inaktivieren, fällt der damit in Zusammenhang stehende Aufwand weg.

    [iSeries] Fehler vermeiden: i5/OS unterstützt dieses Argument nicht. gotcha
  • [AIX Solaris HP-UX Linux Windows] [z/OS] -Xgpolicy

    Geben Sie -Xgpolicy an, um die Garbage-Collection-Richtlinie festzulegen. Dieses Argument ist nur für IBM Developer Kit gültig.

    Setzen Sie dieses Argument auf optavgpause, wenn eine gleichzeitige Markierung verwendet werden soll, um Anwendungs-Threads zu überwachen, die aus dem Stapel gestartet werden, bevor der Heap-Speicher erschöpft ist. Wenn Sie diesen Parameter angeben, werden lange Pausen vermieden und einheitlichere Pausen erreicht. Diese Richtlinie verringert jedoch den Durchsatz, weil Threads unter Umständen zusätzliche Arbeit übernehmen müssen.

    Setzen Sie dieses Argument auf optthruput, wenn der Durchsatz optimiert werden soll und lange Pausen zwischen den Garbage-Collections kein Problem darstellen. Dies ist der Standardparameter und die empfohlene Einstellung.

    [iSeries] Fehler vermeiden: i5/OS unterstützt dieses Argument nicht. gotcha
  • [AIX Solaris HP-UX Linux Windows] [z/OS] -XX

    Java Platform, Standard Edition 6 (Java SE 6) hat eine generationsabhängige Garbage-Collection, bei der unterschiedliche Speicherpools für Objekte mit unterschiedlichem Alter unterstützt werden. Im Garbage-Collection-Zyklus werden die Objekte unabhängig voneinander nach Alter erfasst. Mit zusätzlichen Parametern können Sie die Größe der Speicherpools einzeln festlegen. Um einen besseren Durchsatz zu erzielen, setzen Sie die Größe des Pools für Objekte mit kurzem Lebenszyklus so fest, dass der Lebenszyklus der Objekte im Pool die Dauer eines Garbage-Collection-Zyklus nicht überschreitet. Verwenden Sie die Parameter NewSize und MaxNewSize, um die Größe des Pools für die neue Generation festzulegen.

    Objekte, die den ersten Garbage-Collection-Zyklus "überleben", werden in einen anderen Pool übertragen. Verwenden Sie den Parameter SurvivorRatio, um die Größe des Pools für die Objekte festzulegen, die den Garbage-Collection-Zyklus überleben. Sie können die von Tivoli Performance Viewer erfassten Objektstatistiken verwenden oder das Argument "verbose:gc" in Ihre Konfigurationseinstellung einfügen, um die Garbage-Collection-Statistiken zu überwachen. Wenn die Garbage-Collection zu einem Engpass wird, geben Sie die folgenden Argumente an, um die Einstellungen für den Generationspool an Ihre Umgebung anzupassen.
    -XX:NewSize=unterer_Grenzwert
    -XX:MaxNewSize=oberer_Grenzwert
     -XX:SurvivorRatio=neues_Verhältnis 
    Bewährte Verfahren: Die Standardwerte für diese Argumente sind NewSize=2m MaxNewSize=32m SurvivorRatio=2. Wenn Sie jedoch eine JVM mit einer Heap-Speichergröße von mehr als 1 GB haben, sollten Sie die Werte -XX:newSize=640m -XX:MaxNewSize=640m -XX:SurvivorRatio=16 verwenden oder 50 bis 60 % der Gesamtgröße des Heap-Speichers für den Pool der neuen Generation definieren. bprac
    [iSeries] Fehler vermeiden: i5/OS unterstützt dieses Argument nicht. gotcha
  • [AIX Solaris HP-UX Linux Windows] [z/OS] -Xminf

    Geben Sie -Xminf an, um die Mindestgröße des freien Heap-Speichers in Prozent anzugeben. Der Heap-Speicher wächst an, wenn der frei Speicherplatz unter dem angegebenen Minimum liegt. Dieses Argument gibt im Modus mit unterstützter Rücksetzmöglichkeit den Mindestprozentsatz des freien Speicherplatzes für Middleware- und Übergangs-Heap-Speicher an. Der für dieses Argument angegebene Wert ist eine Gleitkommazahl zwischen 0 und 1. Der Standardwert ist .3 (30 Prozent).

    [iSeries] Fehler vermeiden: i5/OS unterstützt dieses Argument nicht. gotcha
  • [AIX Solaris HP-UX Linux Windows] [z/OS] -server | -client

    Java HotSpot Technology in Java SE 6 verwendet eine adaptive JVM, die Algorithmen enthält, die nach und nach die Leistung des Bytecodes optimiert. Die JVM kann in zwei Modi ausgeführt werden: -server und -client. Sie sollten den Modus -server in den meisten Fällen verwenden. Dieser Modus bietet über einen längeren Zeitraum eine bessere Laufzeitleistung.

    Wenn Sie den Standardmodus -client verwenden, ist die Serverstartzeit kürzer, und es entsteht weniger Speicherbedarf. Dieser Modus verringert jedoch die Leistung. Verwenden Sie den Modus -server, der eine bessere Leistung bietet, wenn die Leistung wichtiger ist als eine verkürzte Startzeit. Sie können die Prozessgröße und die Startzeit des Servers überwachen, um die Leistungsunterschiede zwischen den Modi -client und -server besser zu verstehen.

    [iSeries] Fehler vermeiden: i5/OS unterstützt dieses Argument nicht. gotcha
  • -Dcom.ibm.CORBA.RequestTimeout=Zeitlimit

    Dieses Argument gilt nur für z/OS. Geben Sie das Argument -Dcom.ibm.CORBA.RequestTimeout=Zeitlimitintervall an, um das Zeitlimit für die Beantwortung von Anforderungen, die vom Client gesendet werden, festzulegen. Dieses Argument wird mit der Option "-D" verwendet. Zeitlimitintervall ist das Zeitlimit in Sekunden. Falls es in Ihrem Netz eine extreme Latenzzeit gibt, geben Sie einen hohen Wert an, um Zeitlimitüberschreitungen zu vermeiden. Wenn Sie einen zu niedrigen Wert angeben, kann es bei einem am WLM beteiligten Anwendungsserver zu einer Zeitlimitüberschreitung kommen, bevor er eine Antwort empfangen hat.

    Geben Sie dieses Argument nur dann an, wenn in Ihrer Anwendung Probleme wegen Zeitlimitüberschreitungen auftreten. Es gibt keine empfohlenen Werte für dieses Argument.

  • -Dcom.ibm.websphere.wlm.unusable.interval=Intervall

    Dieses Argument gilt nur für z/OS. Geben Sie das Argument -Dcom.ibm.websphere.wlm.unusable.interval=Zeitlimitintervall an, um den Wert der Eigenschaft "com.ibm.websphere.wlm.unusable.interval" zu ändern, wenn der WLM-Status des Clients zu früh oder zu spät aktualisiert wird. Diese Eigenschaft gibt an, wie lange (in Sekunden) die Laufzeitumgebung des WLM-Clients nach der Kennzeichnung eines Servers als nicht verfügbar wartet, bis sie versucht, erneut Kontakt mit dem Server aufzunehmen. Dieses Argument wird mit der Option "-D" verwendet. . Der Standardwert sind 300 Sekunden. Falls Sie einen zu hohen Wert für diese Eigenschaft festlegen, bleibt der Server für einen langen Zeitraum als nicht verfügbar gekennzeichnet. Der WLM-Status des Clients wird erst nach Ablauf des angegebenen Zeitraums vom WLM-Aktualisierungsprotokoll aktualisiert.

  • [z/OS] -Dcom.ibm.ws.buffermgmt.impl.WsByteBufferPoolManagerImpl=

    Dieses Argument gilt nur für z/OS. Geben Sie das Argument -Dcom.ibm.ws.buffermgmt.impl.WsByteBufferPoolManagerImpl= an, t vor, um anzugeben, dass der Speicher für einzelne direkte Bytepuffer freigegeben soll, sobald der Puffer nicht mehr benötigt wird. Der einzige unterstützte Wert für dieses Argument ist com.ibm.ws.buffermgmt.impl.ZOSWsByteBufferPoolManagerImpl.

    Die direkten Bytepuffer, die die JVMs für die Bearbeitung von Anforderungsdaten erstellt, werden im LE-Heap-Speicher (Language Environment) und nicht im JVM-Heap-Speicher reserviert. Wenn die direkten Bytepuffer nicht mehr benötigt werden, gibt die JVM diesen nativen LE-Speicher normalerweise erst bei der nächsten Garbage-Collection frei. Wenn der Server große Anforderungen verarbeitet, kann der LE-Speicher bereits vor einem Garbage-Collection-Zyklus erschöpft sein, was dazu führt, dass der Server abnormal beendet wird (Abend). Die Konfiguration der JVM mit dem folgenden Argument kann das Auftreten dieser Abend-Bedingungen verhindern.
    -Dcom.ibm.ws.buffermgmt.impl.WsByteBufferPoolManagerImpl=com.ibm.ws.buffermgmt.impl.ZOSWsByteBufferPoolManagerImpl

    [z/OS] Auf der z/OS-Plattform müssen Sie dieses Argument auch angeben, wenn Sie die angepasste Eigenschaft zaioFreeInitialBuffers für einen TCP-Channel angeben, um anzuzeigen, dass der Channel die anfänglichen Lesepuffer, die in neuen Verbindungen verwendet werden, sofort freigeben soll, wenn sie für die Verbindung nicht mehr benötigt werden.

  • [AIX Solaris HP-UX Linux Windows] [z/OS] -Xshareclasses:none

    Geben Sie das Argument -Xshareclasses:none an, um die Option für gemeinsam Nutzung von Klassen für einen Prozess zu inaktivieren. Die Option für die gemeinsame Nutzung von Klassen, die in Java SE6 verfügbar ist, ermöglicht Ihnen die gemeinsame Nutzung von Klassen in einem Cache. Die gemeinsame Nutzung von Klassen in einem Cache kann die Startzeit verbessern und den Speicherbedarf verringern. Prozesse wie Anwendungsserver, Node Agents und Deployment Manager können die Option für gemeinsam Nutzung von Klassen verwenden.

    Wenn Sie diese Option verwenden, sollten Sie den Cacheinhalt löschen, wenn der Prozess nicht verwendet wird. Zum Löschen des Cacheinhalts rufen Sie das Dienstprogramm "Stammverzeichnis_des_Anwendungsservers/bin/clearClassCache.bat/sh" auf, oder stoppen Sie den Prozess und starten ihn anschließend erneut.

    Fehler vermeiden:
    • [Solaris] [iSeries] [HP-UX] IBM JVM for J2SE 5 wird von Solaris, HP und i5/OS nicht unterstützt.
    • In einem Anwendungsserverprozess ausgeführten J2EE-Anwendungsklassen werden dem gemeinsam genutzten Klassencache nicht hinzugefügt.
    gotcha
Datentyp String
Einheiten Befehlszeilenargumente für Java
Name der ausführbaren JAR-Datei

Gibt den vollständigen Pfadnamen einer vom JVM-Code verwendeten ausführbaren JAR-Datei an.

Datentyp String
Einheiten Pfadname
JIT inaktivieren

Gibt an, ob der JIT-Compiler des JVM-Codes inaktiviert werden soll.

Wenn Sie den JIT-Compiler inaktivieren, nimmt der Durchsatz merklich ab. Im Hinblick auf den Durchsatz sollte JIT deshalb aktiviert bleiben.

Datentyp Boolean
Standardeinstellung false (JIT aktiviert)
Empfohlene Einstellung JIT aktiviert
Name des Betriebssystems

Die JVM-Einstellungen für ein bestimmtes Betriebssystem.

Beim Prozessstart verwendet der Prozess die JVM-Einstellungen, die für den Server angegeben wurde, als JVM-Einstellungen für das Betriebssystem.

Beim Prozessstart verwendet der Prozess die JVM-Einstellungen, die für den Knoten angegeben wurde, als JVM-Einstellungen für das Betriebssystem.

Register 'Laufzeit'

Ausführliche Ausgabe zur Garbage-Collection

Bei Auswahl dieser Option werden ausführliche Debug-Nachrichten zur Garbage-Collection ausgegeben. Standardmäßig ist die ausführliche Ausgabe nicht aktiviert.

[AIX Solaris HP-UX Linux Windows] Wenn die ausführliche Ausgabe für die Garbage-Collection aktiviert ist, wird die Debug-Ausgabe an eines der nativen Prozessprotokolle gesendet.

,

Datentyp Boolean
Standardeinstellung false

Bei Auswahl dieser Option wird bei jeder Ausführung des Garbage-Collectors ein Bericht in den Ausgabedatenstrom geschrieben. Dieser Bericht gibt Aufschluss darüber, wie der Java-Garbage-Collection-Prozess funktioniert.

Sie können den verboseGC-Bericht verwenden, um Folgendes zu ermitteln:
  • Wie viel Zeit verbringt die JVM mit der Garbage-Collection.
    Im Idealfall sollte die JVM weniger als 5 Prozent ihrer Verarbeitungszeit für die Garbage-Collection aufwenden. Sie können den Prozentsatz der für die Garbage-Collection erforderlichen Zeit berechnen, indem Sie die Zeit bis zum Abschluss der Garbage-Collection durch die Zeit seit dem letzten AF dividieren und das Ergebnis mit 100 multiplizieren. Beispiel:
    83,29/3724,32 * 100 = 2,236 Prozent
    
    

    Wenn die GC mehr als 5 % der Zeit benötigt und häufig ausgeführt wird, müssen Sie ggf. den Java-Heap-Speicher vergrößern.

  • Wenn der zugeordnete Heap-Speicher mit jeder Garbage-Collection anwächst.

    Um festzustellen, ob der zugeordnete Heap-Speicher an Größe zunimmt, sehen Sie sich den Prozentsatz des Heap-Speichers an, der nach jedem Garbage-Collection-Zyklus nicht belegt ist, und stellen Sie sicher, dass dieser Prozentsatz nicht weiter abnimmt. Wenn der Prozentsatz an freiem Speicherplatz weiter abnimmt, nimmt die Größe des Heap-Speichers von Garbage-Collection zu Garbage-Collection allmählich zu. Diese Situation kann auf einen Speicherverlust in der Anwendung hinweisen.

[z/OS] Auf der Plattform z/OS können Sie die Informationen zum JVM-Heap-Speicher auch an der MVS-Konsole mit dem Befehl modify display, jvmheap anzeigen. Zusätzlich können Sie die Datensätze zur Serveraktivität und die Intervall-SMF-Datensätze überprüfen. Die Größe des Java-Heap-Speichers steht auch der PMI zur Verfügung und kann mit dem Tivoli Performance Viewer überwacht werden.




Mit (online) gekennzeichnete Links setzen einen Internet-Zugang voraus.

Zugehörige Tasks
Zugehörige Verweise
Angepasste Eigenschaften
[AIX Solaris HP-UX Linux Windows]


Dateiname: urun_rconfproc_jvm.html