Hot List der Optimierungsparameter
Die folgende Hot List enthält Empfehlungen, die vielen Anwendungen bewiesenermaßen Verbesserungen in Bezug auf die Leistung und Skalierbarkeit bringen.
- Hardware- und Softwarevoraussetzungen prüfen
Für die richtige Funktionalität und Leistung ist es äußerst wichtig, die Mindestanforderungen hinsichtlich der Hard- und der Software zu erfüllen. Detaillierte Informationen zu den Hardware- und Softwarevoraussetzungen finden Sie auf der Website IBM® WebSphere Application Server supported hardware, software, and APIs.
Aktuelles Aktualisierungspaket (Refresh-Pack), Fixpack und empfohlene vorläufige Fixes installieren
Die Liste der empfohlenen Aktualisierungen wird auf der Unterstützungssite bereitgestellt.
- Hardwarekonfiguration und -einstellungen prüfen
Überprüfen Sie die Netzverbindungen, um sicherzustellen, dass sie die höchste Geschwindigkeit bieten. Weitere Informationen hierzu finden Sie im Artikel Anwendungsserverumgebung optimieren.
Überprüfen Sie, ob die Netzverbindungen und die Hardwarekonfiguration für optimale Leistung konfiguriert sind.
Betriebssysteme optimieren.
Die Konfiguration des Betriebssystems spielt eine wichtige Rolle in Bezug auf die Leistung. In vielen Fällen kann eine Anpassung einiger TCP/IP-Parameter für Ihre Anwendung erforderlich sein.
IBM i-Systeme optimieren
Die Konfiguration des Betriebssystems spielt eine wichtige Rolle in Bezug auf die Leistung. In vielen Fällen kann eine Anpassung einiger TCP/IP-Parameter für Ihre Anwendung erforderlich sein.
IBM Power Systems Performance Capabilities Reference IBM i operating system Version 7.2
- Mindest- und Maximalgröße für den JVM-Heapspeicher festlegen
Viele Anwendungen benötigen einen größeren Heapspeicher, um ihre beste Leistung zu erzielen. Es wird außerdem empfohlen, basierend auf den Kenndaten der Anwendung eine passende Richtlinie für die Garbage-Collection auszuwählen.
JDBC-Treiber des Typs 4 (oder einen reinen Java-Treiber) verwenden
Im Allgemeinen wird der JDBC-Treiber des Typs 2 empfohlen, wenn die Datenbank sich auf derselben physischen Maschine befindet wie die WebSphere-Instanz. Falls die Datenbank sich in einer anderen Schicht befindet, bietet der JDBC-Treiber des Typs 4 die höchste Leistung, da er ein reiner Java-Treiber ist, für den keine native Implementierung erforderlich ist. Klicken Sie auf den vorherigen Link, um eine Liste mit den Voraussetzungen der einzelnen Datenbankhersteller anzuzeigen. Diese Liste gibt Ihnen Aufschluss darüber, ob ein JDBC-Treiber des Typs 4 für Ihre Datenbank unterstützt wird.
JDBC-Treiber des Typs 2 für lokalen Datenzugriff und einen JDBC-Treiber des Typs 4 (oder einen reinen Java-Treiber) für fernen Datenzugriff verwenden
Im Allgemeinen wird der JDBC-Treiber des Typs 2 empfohlen. Klicken Sie auf den vorherigen Link, um eine Liste mit den Voraussetzungen der einzelnen Datenbankhersteller anzuzeigen. Diese Liste gibt Ihnen Aufschluss darüber, ob ein JDBC-Treiber des Typs 4 für Ihre Datenbank unterstützt wird.
JDBC-Datenquellen und zugehörige Verbindungspools in WebSphere Application Server optimieren
Die Konfiguration der JDBC-Datenquellen kann einen erheblichen Einfluss auf die Leistung haben. Die Größe des Verbindungspools und die Größe des Caches für ausführbare Anweisungen müssen beispielsweise basierend auf der Anzahl parallel verarbeiteter Anforderungen und dem Design der Anwendung festgelegt werden.
Weitere Informationen finden Sie im Artikel Verbindungspools.
Option 'Durch Referenz übergeben' aktivieren
Anwendungen können die Option "Durch Referenz übergeben" nutzen, um die Kosten für das Kopieren von Parametern in den Stack einzusparen.
- Sicherstellen, dass das Transaktionsprotokoll einer schnellen
Platte zugeordnet ist
Einige Anwendungen schreiben sehr oft in das Transaktionsprotokoll. Die Antwortzeit ist wesentlich besser, wenn Sie das Transaktionsprotokoll einer schnellen Platte oder einem Platten-Array zuordnen.
- Zugehörige Komponenten, z. B. die Datenbank optimieren
Häufig müssen Anpassungen an anderen Komponenten, wie z. B. einer Datenbank vorgenommen werden, um einen höheren Durchsatz für die gesamte Konfiguration zu erzielen.
- Nicht erforderliche Funktionen inaktivieren
Wenn Ihre Anwendung beispielsweise die Unterstützung für WS-Addressing (Web Service Addressing) nicht verwendet, können Sie durch Inaktivieren dieser Funktion die Leistung verbessern.
Achtung: Verwenden Sie diese Eigenschaft mit Sorgfalt, weil Anwendungen unter Umständen erfordern, dass die WS-Addressing-Zuordnungen korrekt funktionieren. Durch das Setzen dieser Eigenschaft wird auch die Unterstützung von WebSphere Application Server für die folgenden Spezifikationen inaktiviert, die von der Unterstützung für WS-Addressing abhängig sind: Web Services Atomic Transactions, Web Services Business Agreement und Web Services Notification.
Informationen zum Inaktivieren der Unterstützung für WS-Addressing finden Sie im Artikel WS-Addressing-Unterstützung für JAX-RPC-Anwendungen aktivieren.
Index optimieren
Eines der Ziele des Programmiermodells und der Laufzeit ist, die Arbeit der Anwendungsentwickler zu erleichtern und das Schreiben und die Implementierung von Anwendungen zu vereinfachen. Das Produkt soll dem Entwickler vor allem die vielen kleinen unangenehmen und zeitraubenden Nebenarbeiten abnehmen. Der Anwendungscode in Application Server enthält beispielsweise keine direkten Angaben zur Fernübertragung. Er lokalisiert vielmehr Objekte, die lokal oder fern sein können, und führt Methoden aus. In diesem Anwendungscode werden Sie daher keine direkte Verwendung von Socket-Aufrufen oder TCP/IP-Programmierung sehen.
Die Trennung der Tasks von der Stelle, an der sie ausgeführt werden, ist ein Aspekt, wenn es um die Vereinfachung des Programmierens geht. Ein anderer Aspekt ist die Vermeidung von Datenaufrufen für bestimmte Arten von Beans, die potenziell der Authentifizierung unterliegen und Threads verwenden. Aufrufe im Anwendungscode betreffen im Allgemeinen keine Sockets oder RACF-Aufrufe und haben nichts mit Verwaltung oder Threading zu tun. Den Anwendungsprogrammierer von diesen Dingen zu entlasten, bedeutet nicht, dass sie sich von selbst erledigen. Diese Nebenarbeiten werden im Gegenteil auf den DBA, den Netzadministrator, den Sicherheitsadministrator und den Leistungsanalysten verlagert.
Vier Bereiche der Optimierung müssen abgedeckt werden:Die ersten drei Bereiche werden in gesonderten Abschnitten dieses Artikels behandelt. Der vierte Bereich wird hier nur kurz gestreift. Weitere Informationen zur Optimierung von Anwendungen finden Sie im Artikel Anwendungsclients verwenden.
Subsysteme optimieren
Für die Optimierung von z/OS-Subsystemen zur Steigerung der Produktleistung sind unter anderem die folgenden Schritte erforderlich:
Laufzeitumgebung des Produkts optimieren
Wenn Sie die Laufzeit des Produkts optimieren möchten, um eine höhere Leistung zu erzielen, müssen Sie wie folgt vorgehen:Produktkonfiguration überprüfen
Als Erstes müssen Sie die Produktkonfiguration überprüfen. Eine einfache Möglichkeit, die Überprüfung durchzuführen, ist die Anzeige der Anwendungssteuerung und der Serverbereiche im SDSF. Wenn die einzelnen Server gestartet werden, gibt die Laufzeit die aktuellen Konfigurationsdaten im Jobprotokoll aus.
Tipps für den internen Trace des Produkts
Produkttraces können die Erkennung und Bestimmung von Fehlern wirksam unterstützen. Durch das korrekte Setzen von Traceoptionen können Sie ohne erheblichen Systemaufwand Informationen erfassen, Sie für die Feststellung von Problemen benötigen.
- Achten Sie darauf, nicht mehr Diagnosedaten als erforderlich zu sammeln.
Überprüfen Sie die Traceoptionen, und stellen Sie sicher, dass die Eigenschaft "ras_trace_defaultTracingLevel" auf 0 oder 1 gesetzt ist und die Eigenschaften "ras_trace_basic" und "ras_trace_detail" nicht gesetzt sind.
Optionen anzeigen oder festlegen: Verwenden Sie wie folgt die Administrationskonsole:- Klicken Sie auf .
- Auf der Registerkarte "Konfiguration" können Sie diese Eigenschaften im Namensfeld finden und im Feld "Wert" die Einstellung überprüfen.
- Wenn Sie die Einstellung für eine dieser Eigenschaften ändern möchten, klicken Sie im Namensfeld auf den Namen der Eigenschaft, und geben Sie die neue Einstellung im Feld "Wert" ein. Auf der Registerkarte finden Sie auch ein Beschreibungsfeld, in dem Sie eine Beschreibung der Einstellung eingeben können.
- Wenn Sie eine dieser Eigenschaften hinzufügen möchten, klicken Sie auf Neu, und geben Sie den Eigenschaftsnamen im Namensfeld und die Einstellung der Eigenschaft im Feld "Wert" ein.
- Falls Sie mit allen Tracestufen, einschließlich "ras_trace_defaultTracingLevel=1",
arbeiten, müssen Sie die Eigenschaft "ras_trace_outputLocation" auf BUFFER setzen. Ist die Eigenschaft "ras_trace_defaultTracingLevel" auf 1 gesetzt, werden Ausnahmen in das Traceprotokoll und in das Fehlerprotokoll geschrieben.
- Der Trace wird am besten im CTRACE erfasst.
Wenn bei Ausgabe des Trace an SYSPRINT die Eigenschaft "ras_trace_defaultTracingLevel" auf 3 gesetzt ist, geht der Durchsatz unter Umständen um fast 100 % zurück. Bei einer Erfassung im CTRACE liegt der Durchsatzrückgang dagegen bei nur 15 %.
- Der Trace wird am besten im CTRACE erfasst.
- Legen Sie die Eigenschaft "ras_trace_BufferCount" auf 4 und die Eigenschaft
"ras_trace_BufferSize" auf 128 fest.
Bei dieser Einstellung werden 512 KB Speicher für die Tracepuffer reserviert, die Mindestgröße des zulässigen Speichers. Außerdem wird der Speicherbedarf reduziert.
- Inaktivieren Sie die JRAS-Tracefunktion. Suchen Sie dazu in der Datei trace.dat, auf die die JVM-Eigenschaftendatei verweist, nach folgenden Zeilen:
Vergewissern Sie sich, dass beide Zeilen auf disable gesetzt sind, oder löschen Sie die beiden Zeilen vollständig.com.ibm.ejs.*=all=disable com.ibm.ws390.orb=all=disable
Anmerkung: Wenn ein Wert für die Eigenschaft "ras_trace_outputLocation" angegeben ist, ist die Tracefunktion möglicherweise aktiviert, ohne dass Sie davon wissen.
- Achten Sie darauf, nicht mehr Diagnosedaten als erforderlich zu sammeln.
Tipps für die Position ausführbarer Programme
Als Nächstes müssen Sie in der Konfiguration überprüfen, wo sich der Programmcode befindet. IBM empfiehlt, den Produktcode weitestgehend im Link-Pack-Bereich zu installieren. Damit wird sichergestellt, dass keine unnötigen STEPLIBs mehr vorhanden sind, die sich negativ auf den Durchsatz auswirken könnten. Falls Sie STEPLIBs verwenden müssen, vergewissern Sie sich, dass in den Controller- und Servant-Prozessen keine STEPLIB DD auf Bibliotheken verweisen, die nicht erforderlich sind. Hinweise zur Optimierung des USS-SFS (Shared File System) finden Sie im Artikel USS-Optimierungstipps (UNIX System Services) für z/OS.
Wenn Sie sich entscheiden, nicht den größten Teil der Laufzeit in den Link-Pack-Bereich zu stellen, werden Sie bemerken, dass der Hauptspeicherplatz mit zunehmender Arbeitslast sehr stark ausgelastet wird. Application Server startet mindestens drei Adressbereiche, so dass nicht gemeinsam genutzter Code eher drei Kopien als eine Kopie laden wird. Mit zunehmender Arbeitslast können viele weitere Servants gestartet werden und so zusätzlich zur Auslastung des Hauptspeicherplatzes beitragen.
Überprüfen Sie die Anweisung PATH, um sicherzustellen, dass nur erforderliche Programme im PATH enthalten sind und dass häufig referenzierte Programme bei der Reihenfolge im PATH berücksichtigt sind.
J2EE-Anwendungen optimieren
Für die Leistungsoptimierung von J2EE-Anwendungen sind unter anderem die folgenden Schritte erforderlich:- Anwendungsdesign überprüfen
Viele Leistungsprobleme können auf das Anwendungsdesign zurückverfolgt werden. Überprüfen Sie das Design, um festzustellen, ob dieses die Ursache für die Leistungsprobleme ist.
- Änderungen im Verhalten von CDI
Standardmäßig durchsucht CDI alle Anwendungsarchive. CDI 1.2 kann die Initialisierungszeit besonders bei größeren Anwendungen deutlich verlängern. Um das Durchsuchen impliziter Archive nach Annotationen zu inaktivieren, setzen Sie die Systemeigenschaft enableImplicitBeanArchives auf false. Diese Einstellung überspringt das Durchsuchen von Archiven, es sei denn, sie enthalten eine Datei des Typs beans.xml.