Benutzeranmeldung

Tipps und Tricks zur Durchsatzberechnung

Bei der Durchführung von Web-Lasttests gibt es häufig Verständnisprobleme bezüglich der Unterscheidung zwischen technischem und fachlichen Durchsatz.

Der technische Durchsatz ist die Anzahl der tatsächlich durchgeführten Http-Requeste pro Zeiteinheit.
Der fachliche Durchsatz ist die Anzahl der pro Zeiteinheit komplett durchgeführten Geschäftsprozesse. Diese bestehen häufig aus mehr als einem Http-Request.

Die Unterscheidung ist daher sehr wichtig, da man von den Anwendern Aussagen zum gewünschten fachlichen Durchsatz erhält, von den Entwicklern und Betreibern allerdings immer Aussagen zum möglichen technischen Durchsatz erhält.

Nehmen wir an, ein fachlicher Prozess auf einer Website besteht aus folgenden einzelnen Http-Requesten:

1. Schritt: Anmeldung
2. Schritt: Klick auf ein Produkt im Shop.
3. Schritt: Übernahme des Produkts in den Warenkorb.
4. Schritt: Einkauf abschliessen.

Nach jedem einzelnen Http-Request macht der durchschnittliche Benutzer eine Klickpause von 5 Sekunden.

Aus dem Betrieb haben wir die Mitteilung erhalten, daß der Produktivserver ab einer Last von 50 gleichzeitigen Verbindungen Performanceprobleme zeigt.

Wir wollen jetzt mit 100 parallelen virtuellen Benutzern und einer Stunde Laufzeit immer wieder den Prozess, bestehend aus den vier oben aufgezählten Schritten und den 5-Sekunden-Pausen dazwischen, durchführen.

Erstaunlicherweise können wir das Problem so nicht nachstellen. Woran liegt das?

Während unserer Messung sehen wir, daß die Http-Requeste mit durchschnittlich 500 ms Dauer verarbeitet werden. Die Durchführung eines fachlichen Prozesses dauert also ungefähr 4 * 0,5 sek + 4 * 5 sek = 22 sek.
Dabei entfallen jeweils 2 sek auf die Verarbeitung der Http-Requeste, 20 sek sind reine Wartezeiten des Benutzer-Simulators. Das bedeutet 9% eines fachlichen Durchlaufs sind Verarbeitungszeiten, 91% sind Wartezeiten des Simulators, in diesen 91% werden also keine Serverressourcen verbraucht(*).

Damit ist mit den 100 parallelen virtuellen Benutzern zu erwarten, daß im Durchschnitt über die gesamte Testzeit 9 gleichzeitige Verbindungen am Server anliegen.
Dieser Wert kann natürlich, insbesondere zum Teststart, schwanken, illustriert aber gut die Notwendigkeit, zwischen fachlichem Durchsatz und technischem Durchsatz zu unterscheiden.

Wir freuen uns auf Ihre Rückfragen.

(*) Dies entspricht dem idealisierten Fall, durch Verwendung von beispielsweise keep-alive, SSL, gepoolten DB-Verbindungen, können selbstverständlich auch über die Lebenszeit eines Http-Requests hinaus Ressourcen gebunden werden.