Überprüfung mit Vollast

28.10.1999
Ob ein Netz neue Anwendungen oder noch mehr Nutzer verkraftet, kann der IT-Spezialist mit Hilfe von Load-Testing-Werkzeugen prüfen. Sie unterziehen die Komponenten eines Netzes exakt definierten Belastungen, indem sie das typische Verhalten von Nutzern simulieren. Der Vorteil dieses Ansatzes: Die Testszenarien kommen den Bedingungen in der Produktionsumgebung sehr nahe.

Von: Ernst - Eberhard v. Voigt, Bernd Reder

Im Idealfall funktioniert ein Netz nahezu fehlerfrei, und das bei optimaler Leistung, auch wenn es hohen Belastungen ausgesetzt ist.

Die Realität sieht jedoch häufig anders aus: Server-Applikationen stehen nur sporadisch zur Verfügung, die Antwortzeiten gehen gegen unendlich, und die wackere Support-Abteilung führt einen vergeblichen Kampf gegen diese Unzulänglichkeiten, die ein zu knapp dimensioniertes Netz mit sich bringt.

Zu den Hilfsmitteln, mit denen der Fachmann feststellen kann, ob ein Netz auch bei hoher Auslastung stabil läuft, zählen Tests vor der Inbetriebnahme. "Load Testing" mit Hilfe spezieller Tools, wie beispielsweise "Smart Test", erlaubt es, alle Komponenten eines verteilten Systems in einer realitätsnahen Produktionsumgebung zu überprüfen. Diese Belastungstests ermitteln die Performance des Gesamtsystems und geben dem Experten Hinweise, auf welche Weise er das Netz optimieren muß, damit die gewünschte Leistung erzielt wird.

Das Verhalten typischer Benutzer simulieren

Um die Belastungstests zu automatisieren, kann der Experte typische Nutzer charakterisieren und ihre Aktionen festlegen. Anschließend definiert er über Session Scripts einen "Automatischen Teilnehmer", der eine Reihe von Aktionen ausführt, die typisch für den Nutzer dieses Netzwerks sind. Dieser ruft beispielsweise eine Web-Seite auf, liest eine E-Mail oder greift auf eine Datenbank zu. Dabei können diese Aktionen während einer Arbeitssession frei kombiniert werden. Die Session Scripts sind in einem Script Repository gespeichert. Dort kann der Entwickler direkt auf sie zugreifen, bestehende Scripts modifizieren und neue erstellen. Auf diese Weise lassen sich beliebig viele unterschiedliche automatische Teilnehmer definieren, mit denen die gewünschte Last auf dem Netzwerk erzeugt wird.

Entscheidend bei einem Load-Testing-System ist, daß sich die Testszenarien beliebig miteinander kombinieren lassen. Der Experte sollte also unterschiedliche Verbindungstechniken und Netzwerk-Hardware sowie die Art und Zahl der ausgeführten Transaktionen variabel zusammenstellen können. Auf diese Weise lassen sich Kapazitätsengpässe oder Probleme bei der Kombination einzelner Komponenten beseitigen und die optimale Netzkonfiguration ermitteln.

Belastungstests geben außerdem Aufschluß darüber, wie sich ein System in außergewöhnlichen Situationen verhält, etwa bei besonders hohem oder niedrigem Transaktionsvolumen, dem Ausfall von Komponenten oder unzureichender Verbindungs-Hardware.

Wer Load-Testing einsetzen sollte

Zu den potentiellen Anwendern von Lasttest-Systemen zählen zum einen die Betreiber großer Netze, wie etwa Internet-Serviceprovider (ISPs) oder Online-Dienste. ISPs müssen sicherstellen, daß ihre Kunden jederzeit in der Lage sind, die angebotenen Dienste zu nutzen, also sich ins Internet einzuwählen, E-Mails abzurufen, Dateien zu übermitteln oder sich in ein entferntes System einzuloggen. Zur Einwahl ins Internet nutzen die Anwender unterschiedliche Hardware, deren Leistung stark variiert. Der Netzbetreiber muß deshalb wissen, wie sich sein System verhält, wenn ein Anwender beispielsweise über ein analoges Modem mit 28 kBit/s oder 56 kBit/s, ISDN, Ethernet-LANs oder gar über ATM auf eine Applikation zugreift.

Ein weiterer kritischer Faktor ist die Anzahl der maximalen Nutzer, die gleichzeitig auf das Netz zugreifen können, ohne daß die Antwortzeiten einen unzumutbaren Wert erreichen beziehungsweise die Datenraten zu stark absinken. Auch dies läßt sich im Vorfeld simulieren.

Ein weiterer Anwenderkreis sind Unternehmen, die E-Business-Lösungen entwickeln oder einsetzen. Dies Chancen, die der elektronische Handel eröffnet, werden häufig nicht ausgeschöpft, weil Unternehmen Applikationen falsch implementieren oder nicht in ausreichender Güte anbieten. Niedrige Performance, schlechte Skalierbarkeit oder mangelhafte Qualität führen dann zu Imageverlust und mäßigen Umsätzen.

Auch dies läßt sich vermeiden, wenn eine E-Business-Anwendung vor der Installation umfassenden Belastungs- und Funktionstests unterzogen wird.

Anforderungen an Testwerkzeuge

Load-Testing ist nur dann sinnvoll, wenn es mit dem "richtigen" Werkzeug durchgeführt wird. Für die umfassende Überprüfung eines kompletten Netzwerks sind nur Produkte zu empfehlen, die alle Systemteile mit einbeziehen, nicht alleine die Anwendungssoftware.

Ein Load-Testing-Werkzeug sollte folgende Mindestanforderungen erfüllen:

- Zentrale Verwaltung der Testabläufe: Der Entwickler muß ohne großen Aufwand beliebige Testszenarien definieren können. Sie enthalten Informationen über den simulierten Nutzer und legen fest, über welche Verbindung sich dieser zu welchem Zeitpunkt ins Netz einwählt.

- Einfache Definition der virtuellen ("automatischen") Teilnehmer: Die AT sollten möglichst einfach definiert werden können. Jeder virtuelle Nutzer führt Aktionen aus, die auch für die Anwender im Produktionsnetz typisch sind. Diese Arbeitsvorgänge müssen sich speichern lassen, so daß sie in unterschiedlichen Testszenarien eingesetzt, beliebig modifiziert und gegebenenfalls wiederholt werden können.

- Analyse-Werkzeuge für die Auswertung der Testergebnisse: Die Anzeige der Testergebnisse sollte die Möglichkeit zur Online- und Offline-Auswertung bieten. Bei der Online-Anzeige ist es zudem wünschenswert, daß sich bestimmte Meßwerte herausfiltern und die übrigen ausblenden lassen, damit sich der Experte auf bestimmte Aspekte konzentrieren kann.

- Test unter Einbeziehung des gesamten Systems: Das Load-Testing-Werkzeug sollte für den Test des gesamten Systems ausgelegt sein, inklusive der konkret vorhandenen Hardware und Netzwerk-Infrastruktur. Virtuelle Teilnehmer, die sich über vom Testsystem simulierte Verbindungen in ein Netzwerk einwählen, liefern keine korrekten Resultate unter realitätsnahen Belastungen. Diese Tests überprüfen lediglich, ob eine Applikation, die der Endanwender "sieht", dem Zugriff durch verschiedene Anwender standhält.

- Unterstützung einer großen Palette von Netzwerktechniken und Protokollen: Dies ist unbedingt notwendig, weil in einem Netz häufig unterschiedliche Techniken zum Einsatz kommen, beispielsweise ATM, ISDN, lokale und Weitverkehrsnetze oder PPP über Ethernet und ältere Techniken wie analoge Modems. Diese werden entweder alleine oder in Kombination mit verschiedenen Routern und Servern unterschiedlicher Hersteller eingesetzt. Zudem greift der typische Nutzer über zahlreiche Protokolle auf das System zu, wie etwa HTTP, FTP oder SMTP.

- Offenheit für neue Protokolle und Techniken: Ein Load-Testing-Werkzeug sollte eine größtmögliche Offenheit für neue Protokolle und Technologien bieten. Nur dann eignet es sich für den langfristigen Einsatz. Dies schließt mit ein, daß Schnittstellen zu anderen Techniken ohne großen Aufwand integriert werden können.

Einsatzszenarien von Lasttests

Eine Herausfoderung für bestehende Enterprise Networks und die Netze von Carriern und ISPs ist der Vormarsch des Internet Protocol. Load-Testing kann Anwendern dabei helfen, die Migration von bestehenden Client-Server-Anwendungen zu IP-Applikationen einfacher zu bewerkstelligen. Vor dem Umstieg wird geprüft, ob die Infrastruktur für die geänderten Anforderungen ausgelegt ist.

Ein zweites Einsatzgebiet sind Dienste im Internet-Umfeld. Ein ISP beispielsweise muß seinen Kunden einen stabilen und schnellen Zugang zum Internet ermöglichen - und das zu möglichst geringen Kosten. Eine Bank etwa, die ihren Kunden Online-Banking anbietet, erwartet von ihrem Internet-Serviceprovider eine konstant hohe Dienstgüte und die Gewähr, daß alle Transaktionen korrekt ausgeführt werden, und zwar unabhängig von der Belastung des Systems oder der Kombination und Quantität der ausgeführten Transaktionen.

Ähnliche Anforderungen stellt der elektronische Handel. Die Kunden werden nur dann per Mausklick kaufen, wenn es für sie komfortabler, schneller und günstiger ist als bei ihrem Einzelhändler vor Ort. Für die Anbieter heißt das: Ihre Anwendung muß so optimal laufen, daß das "Einkaufserlebnis" für den Kunden jederzeit und ohne große Wartezeiten möglich ist. So komfortabel der allgemeine, weltweite Zugriff über das Internet auch sein mag, so muß er dennoch auf autorisierte Nutzer beschränkt bleiben. Zudem ist es unbedingt erforderlich, daß sensible Informationen, etwa Kundendaten und Kreditkartennummern, sicher gehandhabt werden.

Von Intra- und Extranets bis hin zu E-Business

Einige Protokolle wie etwa HTTP unterstützen Datensicherheit und -schutz. Soll ein System jedoch mit einer gesonderten Verarbeitungsschicht ausgestattet oder mittels spezieller Hardware aufgerüstet werden, kann der Serviceanbieter nur durch umfassende Tests der neuen Komponenten überprüfen, ob die neue Konfiguration einwandfrei funktioniert und die Performance ausreicht.

Zu den wichtigsten Einsatzgebieten von Internet-Techniken zählen Intranets und Extranets. Die Kosten für die Bereitstellung und Lieferung von Gütern und Dienstleistungen lassen sich durch diese Techniken erheblich reduzieren. Deshalb wird der integrierte Zugriff auf Unternehmensdaten innerhalb eines Unternehmens oder zwischen Partnerfirmen ausgebaut.

Am Beispiel von "Enterprise-Resource-Planning"-Systemen (ERP) wird deutlich, welche Probleme eine firmeninterne oder unternehmensübergreifende Informationsstruktur aufwerfen kann. ERP-Systeme setzen häufig auf Netzen mit Hard- und Software unterschiedlicher Hersteller auf. Erschwerend kommt hinzu, daß die Anwendergruppen in vielen Fällen heterogen sind und eigene Prioritäten setzen. Solche Systeme sparen nur dann Kosten, wenn die Konfiguration vor dem Einsatz umfassend getestet wurde.