Performance- und Lasttests
16.10.2023, 00:00 Uhr
Stresstest
Wie eine Webanwendung mit vermehrten Zugriffen umgeht, verrät das Open-Source-Tool k6.
Performance ist eine häufig genannte nichtfunktionale Anforderung („non-functional requirement“) für Anwendungen jeder Art, inklusive Websites. Dabei hat das Leistungsverhalten einer Webanwendung verschiedene Facetten: Wie schnell werden kritische (HTTP-)Anfragen beantwortet? Und was passiert, wenn mehrere parallele Anfragen eintreffen? Wie immer gilt: Was verbessert werden soll, muss gemessen werden. Das klingt zunächst trivial – HTTP-Anfrage absenden und dabei die Stoppuhr laufen lassen –, aber es gibt viele Details zu beachten. Eine Anfrage oder ein Testdurchlauf allein ist nicht aussagekräftig, es sollten schon mehrere sein, um zufällige Ausreißer auszugleichen. Bei Lasttests ist es freilich ein Unterschied, ob die zahlreichen Anfragen nacheinander oder parallel durchgeführt werden und ob Caching erlaubt ist oder nicht.
Glücklicherweise gibt es eine Reihe von solchen Test-Tools. Eines der ersten, und immer noch in aktiver Entwicklung, ist Apache Bench [1], ein Teil des Apache-Webservers [2]. Zahlreiche weitere, teils modernere Tools existieren für alle verschiedenen Betriebssysteme und jeweils mit Fokussierung auf spezielle Features. In diesem Artikel setzen wir auf den persönlichen Favoriten des Autors, einen etwas jüngeren Vertreter: k6 [3]. Dabei handelt es sich um ein Open-Source-Tool, das es seit 2016 gibt, als ein Spin-off eines schwedischen Start-ups. Schon kurz danach nahmen die k6-Macher Kontakt zu Grafana auf, einer bereits damals populären Plattform zur Analyse und Visualisierung von Webanwendungen. Die Produkte ergänzten sich sehr gut, es gab sogar den Plan, Grafana zu kaufen. Dies scheiterte an einer überraschenden parallelen Entwicklung: Der Übernahmekandidat bekam eine Serie-B-Finanzierung (und später noch mindestens zwei weitere Runden). Mit der nun gut gefüllten Kasse kam es dann tatsächlich zur Übernahme, allerdings in anderer Richtung: k6 ist seit 2021 ein Teil von Grafana [4].
Jetzt 1 Monat kostenlos testen!
Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
- + Digitales Kundenkonto,
- + Zugriff auf das digitale Heft,
- + Zugang zum digitalen Heftarchiv,
- + Auf Wunsch: Weekly Newsletter,
- + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar