Der aspectra-Blog seit 2012

Lasttests dimensionieren

04.02.2016

Eine neu entwickelte Webanwendung kann im Labor ganz gut funktionieren. Wie aber verhält sie sich, wenn im Betrieb mehrere Benutzer gleichzeitig ihre Dienste beanspruchen? Lasttests sollen Antworten dazu liefern. Häufig wird mit ihnen aber über das Ziel hinausgeschossen.

Die Waffen sind leicht zu beschaffen

Heute ist es einfach mit den frei verfügbaren Tools und den Möglichkeiten einer Cloud grosse Last auf ein Zielsystem zu generieren. Auch die Netze liefern in der Regel genügend Bandbreiten um richtig grosse Tests zu fahren. Endgültig vorbei sind die Zeiten, wo mehrere physische Clients ins gleiche Netz wie die Server gestellt werden mussten. Das vereinfacht die Sache. Vielleicht liegt hier auch der Grund, warum man sich manchmal zu wenig Gedanken zur Dimensionierung der Tests macht. Es wird nämlich schon mal mit Kanonen auf Spatzen geschossen.

Nicht jeder ist ein Google

Wie viele Benutzer werden gleichzeitig auf der Webanwendung erwartet? Diese Frage muss präzisiert werden. Gehen wir vom Normalbetrieb aus. Hier kann man sich leicht überschätzen. Mit mehr als 1000 gleichzeitigen Benutzern gehört man schon zu den ganz Grossen in unserem Land. Mit über 100 kann man sich auch schon zu den bekannteren Sites zählen. Zum Vergleich: Die Weltwoche beispielsweise hatte im Monat Dezember 300 Besucher pro Stunde. Zu beachten ist auch, dass nur wenige Benutzer hyperaktiv sind und wie die Irren mehrere Seiten pro Sekunde besuchen. Natürlich gibt es Webanwendungen, die mit Hype Situationen zu rechnen haben. Ticketing Plattformen sind da das Paradebeispiel. Auch Werbeaktionen können zu solchen Hypes führen.

Basistest

Aber erstmal langsam mit den jungen Pferden. Die Basis eines jeden Lasttests sollte der Normalfall sein: Eine realistische Anzahl Besucher tummelt sich auf der Webanwendung und führt unterschiedliche Interaktionen in humaner Geschwindigkeit aus: Einfaches Stöbern, Suchen, Formulare ausfüllen, Bestellungen aufgeben usw. in den zu erwartenden Verhältnissen zueinander. Dieser Basistest soll Antworten dazu liefern, wie gross die Antwortzeiten im Normalfall sind.

Ziele definieren

Es lassen sich weitere Tests mit grösseren Belastungen aus dem Basistest ableiten. Hier kann man unterschiedliche Ziele verfolgen: Wie verhalten sich die Antwortzeiten bei einer Hype Situation? Bis zu welcher Anzahl Besucher genügt das System den Anforderungen? Wie ist das Verhalten über einen längeren Zeitraum? Was stellt sich als Flaschenhals der Anwendung heraus? Wo liegt die Lastgrenze und was sind die Symptome dabei? Wie wirken sich Verbesserungen der Applikation (z.B. durch Caching oder Optimierung der Datenbank-Interaktionen) oder der Systemressourcen (mehr CPUs oder RAM) aus?

Für gewisse Anwendungen sind kurze Antwortzeiten bei sehr vielen gleichzeitigen Benutzern unabdingbar. Bei anderen lässt sich abwägen, ob Abstriche zeitweise in Kauf genommen werden können. Müssen die Ressourcen für den grössten anzunehmenden Fall ausgelegt werden? Lassen sich Hype Situationen durch zusätzliche temporäre Ressourcen abfangen? Diese Fragen sollten bei der Planung von Lasttests beantwortet werden. Dann können die Geschütze aufgefahren werden.

 

weiterführender Link: Concurrent Users - The Art of Calculation

Suche