Anwendung unter Last - JAXenter

Anwendung unter Last

Monitoring der Systemkomponenten

Für den laufenden Betrieb eines Systems ist es notwendig, die Betriebsbereitschaft einer Anwendung und seiner zugrunde liegenden Systemkomponenten mittels Monitoring zu überwachen. Die überwachten Komponenten müssen hinsichtlich des Erreichens bzw. des Überschreitens von definierten Schwellwerten betrachtet werden. Diese Schwellwerte stellen dabei jene Bewertungskriterien dar, nach denen ein ordnungsgemäßer Betrieb der Anwendung nach vereinbarten Dienstgüteparametern wie Service Level Agreements (SLA) möglich ist. Service Level Agreements (SLA) legen die notwendigen Leistungseigenschaften von Kriterien wie Verfügbarkeit, Zuverlässigkeit und Antwortzeitverhalten fest. Diese Kriterien sind eindeutig zu spezifizieren und messbar zu formulieren.
Es ist Aufgabe des Last- und Performance-Controllers, die notwendigen Systemkomponenten hinsichtlich dieser Kriterien zu überwachen. Grundsätzlich geschieht dies direkt auf der Seite der Last erzeugenden Anwendung (Antwortzeit, Fehlermeldungen etc.). Der Last- und Performance-Controller sammelt hierbei während der Lasttestdurchführung die Leistungsdaten von den Last erzeugenden Agenten sowie von allen überwachten Komponenten des getesteten Systems wie Hardware, Datenbanken und LoadBalancer. Alle gesammelten Überwachungsdaten und Daten zur Leistungsmessung werden nach Abschluss der Testdurchführung an den Last- und Performance-Controller übertragen und dort entsprechend aggregiert. Sie dienen im weiteren Prozess der Bestimmung der Leistung des Gesamtsystems sowie als Basis für die Analyse von Systemengpässen oder Performanceproblemen.

Analyse der Ergebnisse und Performanceoptimierung

Bei der Analyse der Ergebnisse geht es darum, die relevanten Ergebnisse zu identifizieren und korrekt zu bewerten. Hierbei können Ergebnisse aus den entsprechenden Systembereichen mit den Ergebnissen des genutzten Lasttests verdichtet werden. So lassen sich beispielsweise Ergebnisse des Datenbanksystems mit den Ergebnissen des Lasttest-Tools kombinieren. Die Ergebnisse der Analyse fließen u.a. wieder direkt in die Definition und Konzeption eines neuen Lasttests ein oder können bereits Handlungsbedarf aufzeigen, z.B. einen notwendigen Investitionsbedarf in Hardware oder Software.

Im Zuge der anschließenden Performanceoptimierung ist es wichtig, die durchgeführten Tuningmaßnahmen hinsichtlich ihrer Auswirkung auf die Hardware- und Softwarearchitektur zu kontrollieren. Im technischen Tuning werden alle Komponenten des Gesamtsystems nach den Analyseergebnissen so verändert, dass diese die neuen Anforderungen hinsichtlich Last im System erfüllen. Es empfiehlt sich, die Tuningmaßnahmen sukzessive durchzuführen, um so jeweils die Auswirkungen jeder einzelnen Maßnahme besser überprüfen und bewerten zu können. Im anwendungsspezifischen Applikationstuning werden die ermittelten Daten der durchgeführten Geschäftsprozesse mit dem Ziel betrachtet, den Ressourcenbedarf wie Anforderungen an CPU, Arbeitsspeicher, Netzwerktransfer und Ausführungszeiten in Datenbanksystemen zu reduzieren.

Das Reporting der Ergebnisse

Nach Abschluss von Lasttests werden Kennzahlen, z.B. Antwortzeitverhalten im zeitlichen Verlauf des Tests, Fehlerverhalten in Beziehung zur Anzahl der gleichzeitigen Benutzer etc., in Logdateien und zeitabhängigen Graphen bereitgestellt. Die daraus generierten Reports können anschließend als Analysegrundlage für Optimierungsmaßnahmen dienen. Diese Reports werden mit Reports von anderen, fachlich aber gleichen Last- und Performancetests verglichen. Damit kann eine schleichende Verschlechterung des Antwortzeitverhaltens oder des Verhaltens von Systemkomponenten bestimmt werden.

Die Reports beschreiben das durchgeführte Lastszenarium und geben zugleich Auskunft darüber, wie viele gleichzeitige Benutzer während des Lasttests eingesetzt wurden, wie die Verteilung der Benutzer während des Lasttests aussah, wie sich das Antwortzeitverhalten von den relevanten Requests verhalten hat, wie sich die Systemkomponenten hinsichtlich CPU- und Memory-Auslastung verhalten haben und wie sich Kennzahlen z.B. Treffer pro Sekunde und Durchsatz, während des Testzeitraums verhalten haben. Solche Auswertungen lassen sich entsprechend der geforderten Kennzahlen, z.B. CPU-Auslastung, Memory-Verbrauch und Netzwerkdurchsatz, gestalten. Wichtig hierbei ist allerdings, dass nur relevante Informationen ausgewertet und dargestellt werden, damit die Bedeutung und die Auswirkungen der Ergebnisse klar ersichtlich sind.

Competence Center

Durch die enge Bindung von Last- und Performancemanagement an die Geschäfts- und Unternehmensziele muss eine Organisationseinheit geschaffen werden, in der alle Interessenten in den Last- und Performanceprozess eingebunden sind. Zu diesen zählen u.a. die Bereiche der Anwendungsentwicklung, der Qualitätssicherung, des IT-Betriebs, des IT-Fachbereichs sowie Vertreter von IT-Dienstleistern, Produktmanager und Mitglieder aus anderen Bereichen. Diese internen und externen Vertreter arbeiten direkt im Projekt mit (z.B. durch Teammitglieder aus den entsprechenden Abteilungen) oder sind indirekt vom Last- und Performancemanagementprojekt betroffen (z.B. Unternehmensleitung, Endbenutzer, IT-Dienstleister).

Alle am Last- und Performancemanagementprozess Beteiligten sind in einer eigenen Organisationseinheit zusammengefasst und bilden so die notwendige Schnittstelle zu den entsprechenden Teilbereichen, die sie vertreten. In einer solchen Organisationseinheit können Entscheidungen schnell und mit breitem Konsens getroffen werden. Die Performance von Anwendungen wird dabei nicht dem Zufall überlassen, sondern durch systematische Rollen- und Aufgabenverteilung aus allen beteiligten Abteilungen sichergestellt.

Eine Anforderung an diese Organisationseinheit ist es, Last- und Performancetests bereits zu einem sehr frühen Zeitpunkt der Anwendungsentwicklung einzuplanen und durchzuführen. Durch dieses Vorgehen erhält die Anwendungsentwicklung frühzeitig die Möglichkeit, Korrekturen in der Anwendungsarchitektur oder der Anwendungssoftware durchzuführen. Die Tests werden in einem Referenzsystem durchgeführt, das dem produktiven Anwendungssystem in allen Systemkomponenten und Systemeinstellungen entspricht. Ergebnisse aus Performanceoptimierungen werden folgend im Produktivsystem etabliert und bei kritischen Geschäftsprozessen nochmals mittels eines zusätzlichen Last- und Performancetests referenzmäßig geprüft.

Last- und Performancetests werden in iterativen Zyklen und zu Einführungsterminen von Produktionsreleases begleitend durchgeführt und mit vorhandenen Testergebnissen verglichen. Auf diese Weise können Veränderungen in technischen Systemkomponenten und in fachlichen Anwendungskomponenten rechtzeitig erkannt werden, und es lässt sich frühzeitig darauf reagieren. Alle produktiven Release-Zyklen werden in weiterführenden Maßnahmen durch entsprechende Last- und Performancetests begleitet. Neben den fachlichen Produktionseinführungen werden technische Wartungs-Releases durch entsprechende Last- und Performancetests begleitet und nach erfolgreichem Abschluss zur Produktiveinführung abgenommen.

Zusammenfassung

Die Durchführung von Last- und Performancetests sowie die entsprechende Umsetzung der Testergebnisse gewährleistet die Verfügbarkeit einer stabilen und funktionsfähigen Anwendung. Vor diesem Hintergrund stellen die Tests für Unternehmen einen wesentlichen Bestandteil ihres Qualitätsmanagements dar und bilden damit eine wichtige und zugleich notwendige Investition in die Leistungsfähigkeit und Zuverlässigkeit ihrer IT-Systeme als Grundlage ihres Geschäftserfolgs.
Um mithilfe von Last- und Performancetests ein stabiles und funktionsfähiges IT-System sicherstellen zu können, sind neben den technischen Voraussetzungen für das Realisieren der Tests zugleich entsprechende Rahmenbedingungen für die Testteams im Unternehmen zu schaffen. Meist sind die für diese komplexen Aufgabenstellungen erforderlichen Fachleute im Unternehmen in den unterschiedlichsten Bereichen zu finden. Daher bietet sich hier ein Competence Center als Organisationsform an. Die Umsetzung der vorgestellten Last- und Performancemaßnahmen schafft beim Endbenutzer eine hohe Akzeptanz des Systems und bildet damit die notwendige Basis für die Weiterentwicklung von Anwendungen und den Weiterbetrieb von Systemen.

Dieter Wulz ist als Quality Manager bei der compeople AG für das Last- und Performancemanagement in Projekten verantwortlich. Darüber hinaus beschäftigt er sich mit den Themen Change Management, Business Process Outsourcing, Corporate Shared Service und Insourcing. Kontakt: dieter.wulz[at]compeople.de.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.