Webanwendungen finden bei immer mehr IBM-i-Installationen Anwendung. Grund hierfür sind sicherlich die Neuerungen, die IBM in den letzten Betriebssystemversionen im Hinblick auf die Unterstützung von Webservices ausliefert.

Die Anforderungen an eine Webanwendung sind komplex – und gerade im Hinblick auf die verschiedenen Instanzen, die bei der Verarbeitung der Webservice-Komponenten genutzt werden, bedarf es einer genauen Planung. Denn dann ist die Anwendung nicht nur sicher, sondern wird auch für den Anwender performant ausgeführt.

Die Performance einer Webanwendung, zum Beispiel ein Webshop, beeinflusst den Erfolg der Benutzerschnittstelle wesentlich. Denn wer will schon auf eine Verfügbarkeitsanzeige eines Artikels lange warten?

Von Systemseite her sind schnelle Antwortzeiten zu jeder Tages- und Nachtzeit zu gewährleisten. Doch das ist nicht immer ganz so einfach, da in einer Webanwendung unterschiedliche Systeme, Technologien und Komponenten genutzt werden, die sowohl in Kombination als auch auf den unterschiedlichen Ausführungsebenen einzeln betrachtet die Performance beeinflussen können.

Gerade die Implementierung der Webservices auf IBM i ist eine Besonderheit – werden hier doch Webstandards mit den besonderen Gegebenheiten des Betriebssystems i kombiniert. Die Kombination ist zwar durchaus gelungen – nur sind hier und da die Performance-Auswirkungen nicht optimal. Aber wie auch in anderen Bereich, so lässt sich mit ein wenig administrativem Geschick die Leistung steigern.

IBM hat den IBM-i-Betreibern ein Werkzeug zur Verfügung gestellt, das bei der Arbeit mit der Performance von Webanwendungen unterstützt – den Web Performance Advisor. Dieser ist als Ergänzung beziehungsweise Erweiterung für den Workload Estimator zu sehen – allerdings mit dem klaren Fokus auf der Optimierung der Einstellungen für die Webanwendungen.

Letztlich liefert der Web Performance Advisor Vorschläge, die jedoch mit den übrigen Anwendungen, die auf dem System i ausgeführt werden, kompatibel sein müssen. Deshalb sollten notwendige und vorgeschlagene Änderungen stets im Gesamteinsatzbereich der Maschine betrachtet werden.

Ein wenig Sorgfalt sollte man aber walten lassen – denn das Tool bietet nicht nur die Möglichkeit der Ermittlung und Darstellung der performancerelevanten Parameter, sondern diese können auch mit wenigen Mausklicks geändert werden. Achten Sie deshalb besonders darauf, dass Sie nicht etwas aus Versehen eine Änderung anstoßen, die ungewollt ist. IBM hat aber auch für diesen Fall vorgesorgt – denn durch eine Protokollversion mit speziellen Export- und Importfunktionen lassen sich Einstellungen sichern, sodass diese nach einer Änderung durchaus wiederhergestellt werden können.

Der Web Performance Advisor liefert mit wenigen Mausklicks eine erste Auskunft zu den leistungsbeeinflussenden Faktoren des Systems, wie zum Beispiel:

  • Prozessoranzahl und -auslastung,
  • Plattenauslastung,
  • Systemwerte,
  • TCP/IP-Einstellungen,
  • Java-Einstellungen und
  • PTF-Installationen.

Die verschiedenen Bereiche, die der Web Performance Advisor beeinflusst, werden in sogenannten Performance-Profilen verwaltet.

Einsatz des Web Performance Advisor

Der Web Performance Advisor ist in der Webadministration des IBM i implementiert. Nach dem Anmelden und Aufrufen des IBM-Webadministrators for i ist der entsprechende Link im unteren Bereich der Navigationsleiste zu finden.

Zunächst erscheint ein Hinweis auf die Verwendung des Web Performance Advisor.

Der Hinweis wird mit einem Klick auf „OK“ übergangen.

Nun gibt es einen ersten Überblick zum System – denn eine Analyse auf hoher Ebene liefert Informationen, wie zum Beispiel den vorhandenen Hauptspeicher, die installierte CPW-Leistung oder auch die verschiedenen Webserver-Instanzen. Nachfolgende Abbildung zeigt dazu ein Beispiel.

Im Folgenden sollen die unterschiedlichen Bereiche betrachtet werden. Den Beginn macht die Verwaltung der Systemattribute. Dazu wird auf die entsprechende Schaltfläche „Manage system attributes“ geklickt. Sodann werden die wesentlichen Merkmale Ihres Systems ermittelt. Diese gliedern sich in die Systemressourcen, allgemeine Performance-Einstellungen und PTF-Informationen.

Optisch sind die einzelnen Punkte so dargestellt, dass recht schnell zu erkennen ist, ob es Verbesserungspotenzial für die einzelnen Bereiche gibt. Im Beispiel ist das für die Anzahl der aktiven Prozessoren und auch das Prozessor-Sharing der Fall, wie es am gelben Symbol mit dem Ausrufungszeichen ersichtlich ist.

Nun lässt sich die Anzahl der aktiven Prozessoren nur bedingt beeinflussen, die Einstellung für das Prozessor Sharing kann allerdings angepasst werden. Dazu ist jedoch eine gute Kenntnis in der LPAR-Struktur Ihrer Umgebung erforderlich – denn das Prozessorverhalten und die mögliche Verschiebung von Prozessorressourcen obliegen der LPAR-Definition, in der Prozessoren und deren Zuordnung verwaltet werden.

Klicken Sie nun auf den Reiter „Performance Settings“.

Hier können Sie unter anderem einige TCPIP-Einstellungen direkt anpassen, die sich auf den Austausch an Informationen spürbar auswirken können. Die TCP/IP Buffer Size (Puffergröße) gibt an, welche Informationsgrößen beim Senden und Empfangen einzuhalten sind. Wenn der hier angegebene Wert zu klein ist, dann kann es zu einem Überlauf kommen. Dieser führt nicht zum Datenverlust, sondern zu einem unnötigen Verwaltungsaufwand für die CPU, und augenscheinlich ist die Leitung „sehr langsam“.

Um das zu verhindern, sollte ein Wert in Bytes angegeben werden, der die Wahrscheinlichkeit eines solchen Überlaufs so gering wie möglich hält. Doch auch dabei ist Vorsicht geboten – denn ein zu hoher Wert kann ebenso einen negativen Einfluss haben! Wenn der TCP/IP-Puffer so groß gewählt ist, dass die Anwendungen diesen nicht verarbeiten können, dann kann das wiederum zu hohen Paging-Raten führen. Im Idealfall tasten Sie sich durch eine schrittweise Anpassung des Werts an die Wunschkonstellation an.

Eine Anmerkung an dieser Stelle: Die TCP/IP-Puffergrößen lassen sich zum Beispiel auch mit dem Befehl CHGTCPA anpassen.

Dieser wichtige TCPIP-Wert wirkt sich nicht nur auf Webanwendungen, sondern auf das Verhalten des TCPIP-Netzwerks im Allgemeinen aus.

IBM empfiehlt hier, im Web Performance Advisor den Wert 65535 anzugeben. Wenn Sie auf „Advise“ klicken, erhalten Sie die IBM-Empfehlungen für den betreffenden Eintrag. Im Falle des TCP/IP-Sendepuffers schlägt IBM den Wert 65535 vor, wie es die nachfolgende Abbildung zeigt.

Dieser Vorschlagswert könnte mit einem Klick auf „Set Value“ sofort übernommen werden. Doch Vorsicht: Es ist ein exemplarischer Wert – bitte stellen Sie diesen nur in Abstimmung auf Ihr System ein!

Ein weiterer Bereich, der die Performance von Webanwendungen beeinflussen kann, sind die installierten PTFs. IBM liefert nicht selten Optimierungen durch PTFs aus, die beim IBM-i-Bereich, bei TCPIP, Java, Webservern oder auch Anwendungsservern dazu führen, dass die Webanwendungen anschließend besser laufen. Gerade bei der Verwendung von Arrays in RPG-Webservices sind diese PTFs deutlich spürbar, wenn die Neuerungen auf dem System installiert werden, die Mitte 2015 die Behandlung von leeren Array-Bereichen in RPG Webservices adressieren.

Der Web Performance Advisor trennt die PTF-Anzeigen in allgemeine PTF-Gruppen und die Anzeige der „Web PTFs“ – wobei Letztere nicht unbedingt etwas mit Webanwendungen zu tun haben müssen. Beide Bereiche sind reine Anzeigenbereiche – und sollten uns im Sinne der Performance-Optimierung nur informativ versorgen. PTF-Installationen oder -Bestellungen sind an dieser Stelle nicht möglich.

Während die PTF-Bereiche lediglich der Anzeige und der Information dienen, können Sie den Empfehlungen des Tools Folge leisten und die aufgezeigten Optimierungen durchführen. Da diese unter Umständen leicht rückgängig gemacht werden müssen, sichert das Tool alle Änderungen in einem IFS-Verzeichnis. Dazu wird der Standardpfad ‚/QIBM/UserData/HTTPA/admin/WPA‘ verwendet.

Hier finden sich Einträge für jede Änderung durch den Web Performance Advisor:

Der Aufbau der Sicherungsdateien, die im XML-Format abgelegt werden, stellt sich wie folgt dar:

„QPreSave“ + Servername + Timestamp + „xml“

Der Inhalt dieser Datei spiegelt die Werte wider, die im Advisor zu finden sind, unter anderem die aktuellen Werte, die Vorschlagswerte und die Änderungen. Wenn beispielsweise die TCP/IP-Puffergrößen verändert werden, dann sind die Einstellungen als XML-Element in der Datei wiederzufinden.

Für jede Änderungswelle wird ein neuer Eintrag erstellt. Allerdings werden hier keine alten XML-Dateien gelöscht. Nicht mehr aktuelle XML-Dateien können Sie also bedenkenlos eliminieren.