Zum Inhalt springen

Suchen...

Performance Test: Der Lasttest ist nur ein Szenario

Performance Tests sind keine Lasttests, und Kapazitätstests in jedem Sprint kosten vor allem Cloud-Budget. Im Alltag zählen Monitoring und Telemetrie.

• • Aktualisiert: • 11 Min. Lesezeit
Cover zum Expertengespräch über 'Performance Test: Der Lasttest ist nur ein Szenario' mit Leandro Melendez und Richard Seidl.

Performance-Test und Lasttest unterscheiden sich im Umfang: Beim modernen Performance-Test geht es darum zu verstehen, wie sich ein System verhält und was sein Betrieb kostet, nicht nur darum, ob es hohe Last verkraftet. Kontinuierliche Releases brauchen Observability und Monitoring statt wiederholter Lasttests in jedem Sprint. Lasttests bleiben wichtig für Ausnahmesituationen wie plötzliche Lastspitzen, die tägliche Basis liefern aber Instrumentierung, Dashboards und Echtzeit-Telemetrie.

Das Wichtigste in Kürze

  • In jedem Sprint einen Lasttest zu fahren, ist nicht sinnvoll: Kontinuierliche Releases mit kleinen Änderungen brauchen Observability und Monitoring, keine wiederholten Kapazitätstests, die für Spitzenereignisse gedacht sind.
  • Performance-Test und Lasttest sind nicht dasselbe. Sie gleichzusetzen, ist eine Gewohnheit aus Wasserfallprojekten und Bare-Metal-Servern, die für moderne Cloud-Systeme nicht mehr passt.
  • Elastische Cloud-Infrastruktur hebt die harte Kapazitätsgrenze auf, schafft aber ein Kostenproblem: Ein System, das automatisch skaliert, ohne getunt zu sein, kann weit mehr kosten als nötig und trotzdem schlecht performen.
  • KI-Systeme haben Performance-Kosten, die man heute leicht unterschätzt, weil Tokenpreise niedrig sind. Schlecht gebaute KI-Integrationen mit großen Kontextfenstern werden teuer, sobald sich die Preise normalisieren.
  • Observability, also Agenten, Telemetrie und ein für Menschen lesbares Dashboard, ist der Startpunkt für Performance-Arbeit in jedem Projekt, nicht die Wahl eines Lasttest-Tools.

Performance-Test und Lasttest: der entscheidende Unterschied

Die häufigste Verwechslung in der Praxis: Performance-Test und Lasttest werden als dasselbe behandelt. Sie sind es nicht. Ein Lasttest fragt, ob ein System sehr viele Nutzer gleichzeitig verkraftet. Der Performance-Test stellt die breitere Frage, wie sich ein System unter realen Bedingungen verhält, wie es reagiert und wie viele Ressourcen es verbraucht.

Jahrelang wurden beide Begriffe austauschbar verwendet. Wer Performance sagte, meinte einen Lasttest. Das passte in die Zeit von Wasserfallprojekten und physischen Servern, als alle sechs Monate oder einmal im Jahr ein Release kam und genau eine Maschine jeden Ansturm überstehen musste.

Leandro Melendez, der seit 2007 im Performance-Testing arbeitet, zieht die Grenze scharf: Last ist ein Szenario, nicht die ganze Disziplin. Wer beides auseinanderhält, plant anders, misst anderes und testet in einem anderen Takt.

Wie Performance-Tests früher aussahen

Performance-Testing hieß früher: viel Skripting und viel Detektivarbeit. Tools wie LoadRunner beherrschten das Feld. Tester zeichneten den Browser-Traffic auf, bauten Requests nach und suchten nach Tokens, Session-IDs und Korrelationen, damit die Skripte sauber abliefen.

Das war mühsame Kleinarbeit. Den richtigen Wert in einem Meer von Requests zu finden, glich der Suche nach der Nadel im Heuhaufen. Leandro nennt die Anhänglichkeit an diese Plackerei eine Art Stockholm-Syndrom: Der Wahnsinn war echt, und nach einer Weile hat er trotzdem Spaß gemacht.

Zur damaligen Umgebung passte das Modell. Die Systeme waren abgeschottet, nur ein Administrator hatte Zugriff, und der einzige Produktionsserver stand manchmal unter einem Schreibtisch, mit einer Person daneben. Vor einem seltenen Release einmal gründlich zu testen, war die vernünftige Wahl.

Warum die alten Praktiken in der Cloud nicht mehr passen

Die Bedingungen, die aufwendig geskriptete Lasttests in jedem Zyklus gerechtfertigt haben, gibt es nicht mehr. Agile Delivery, Cloud-Infrastruktur, Kubernetes und ephemere Umgebungen, die entstehen und wieder verschwinden, passen nicht zum alten Rhythmus.

Du kannst nicht jeden Sprint Korrelationen hinterherjagen. Wenn monatlich oder noch öfter released wird, kommt der langsame Skripting-Zyklus schlicht nicht mit. Außerdem hat sich die Architektur zu APIs und Services verschoben, und das eröffnet sauberere Wege, Verhalten zu messen, als eine Browser-Session aufzuzeichnen.

In jedem Sprint einen riesigen Lasttest von Cloud-Rechnern gegen Cloud-Infrastruktur zu fahren, ist Verschwendung. Das verbrennt Geld für wenig neue Erkenntnis, vor allem, wenn ein Minimum Viable Product schon live ist und in Produktion beobachtet wird.

Lasttests gehören nicht in die kontinuierliche Pipeline

Lasttests sind weiterhin wichtig, aber sie sind kein Dauerereignis. Viele Teams machen den Fehler, volle Kapazitätstests in jeden Sprint einzubauen, als käme die Spitzenlast nach Fahrplan.

Tut sie nicht. Black Friday ist nicht jeden Sprint, und Taylor Swift kommt nicht alle zwei Wochen in dein Projekt. Wer in jedem Zyklus auf eine extreme Lastspitze testet, verschwendet Aufwand und Cloud-Budget für ein Szenario, das selten eintritt.

Der Ausfall bei Ticketmaster im Vorverkauf für Taylor Swift zeigt die andere Seite: Wer vor einem absehbaren Ansturm keinen Lasttest macht, richtet echten, öffentlichen und schweren Schaden an. Die Lehre ist Timing, nicht Verzicht. Steht ein großes Ereignis an, fahr einen ernsthaften Lasttest, aber außerhalb der Pipeline, als bewusste Einzelaktion.

Denk an ein Auto. Nach einem Reifenwechsel prüfst du, ob alles hält und sich richtig anfühlt. Du fährst nicht auf die Rennstrecke, um die Höchstgeschwindigkeit neu zu testen. Die meisten Releases sind Reifenwechsel, keine Rennen.

Warum elastische Skalierung ein Kostenproblem schafft

Die Elastizität der Cloud hat ein Problem gelöst und ein neues geschaffen. Hochskalieren heißt nicht mehr, Hardware zu kaufen. Du hebst ein Limit an, und das System wächst nach Bedarf. Hinter dieser Bequemlichkeit steckt eine Kostenfalle.

Ein System kann schnell sein und jeden Nutzer aufnehmen und trotzdem darunter schlecht getunt sein. Leandros Bild dafür ist ein Tank mit Leck: Du kannst immer weiter nachtanken, aber wenn der Motor nur einen Kilometer pro Liter schafft, zahlst du das Zehnfache dessen, was nötig wäre.

Die moderne Performance-Frage lautet deshalb nicht nur “Hält es die Last aus?”, sondern auch “Was kostet es, die Last auszuhalten?”. Ein reaktionsschnelles System, das weit mehr Ressourcen verbraucht als nötig, hat ein Performance-Problem, nur zeigt es sich in der Monatsrechnung statt in der Antwortzeit.

Genau hier spüren Teams inzwischen früh Druck. Steigt die Cloud-Rechnung, fragt das Management nach dem Warum. Diese Frage holt das Nachdenken über Performance in die Entwurfsphase, statt es als Test ans Ende zu schieben.

Neue Metriken für ephemere Umgebungen

Die Antwortzeit beim Client ist nicht mehr die einzige Zahl, die zählt. Ephemere Umgebungen bringen Messgrößen mit, die die klassische Performance-Arbeit nie im Blick hatte.

Wie schnell fährt ein neuer Pod oder eine neue Instanz hoch, wenn Last ankommt? Wie schnell wird sie wieder beendet, wenn sie nicht mehr gebraucht wird? Beide Richtungen haben ihren Preis. Fährst du Instanzen aggressiv herunter, um Geld zu sparen, sieht der erste Nutzer nach einer ruhigen Phase das Ladesymbol kreisen, während das System aufwacht. Hältst du sie warm, damit der erste Eindruck flüssiger ist, steigen die Kosten.

Ein Auto im Leerlauf verbrennt Sprit, ohne vom Fleck zu kommen. Eine ungenutzte Instanz, die weiterläuft, macht dasselbe. Den Sweet Spot zwischen niedrigen Kosten und schneller Reaktion auf plötzliche Last zu finden, ist eine echte neue Herausforderung. Und sie zwingt zu einer unbequemen Entscheidung: Nimmst du für den einen Nutzer, der als Erster kommt, ein schlechtes Erlebnis in Kauf, damit alle nach ihm ein schnelles haben?

Auch KI-Systeme haben eine Kostenseite der Performance

Dieselbe Spannung zwischen Geld und Geschwindigkeit zeigt sich bei KI-gestützten Systemen, und sie verdient Aufmerksamkeit, bevor die Rechnungen kommen. Die Cloud war anfangs billig, um Nutzer zu gewinnen, später zogen die Preise an. KI-Tokens und Credits wirken heute aus demselben Grund günstig.

Leandro spricht von performanter KI, und die Kosten sind dabei die Hauptsorge. Ein allgemeines großes Sprachmodell antwortet schnell und wirkt mächtig. Schickst du aber bei jedem API-Aufruf den kompletten Kontext mit, wächst der Token-Verbrauch schnell und mit ihm die Kosten.

Ein Modell, das auf deinem eigenen Code und deinen Ergebnissen trainiert ist, kann das senken, weil es nicht jedes Mal den ganzen Kontext übergeben bekommen muss. Bevor du MCPs oder Agent-to-Agent-Setups anschließt, frag dich, welche Art von KI du nutzt und wie viel sie verschickt. Solche Setups können aus dem Ruder laufen, wenn niemand auf den Verbrauch schaut.

Performance-Arbeit beginnt vor dem Projekt

Der stärkste Hebel ist das, was Leandro die Minus-eins-Aufgabe nennt: Grundregeln festlegen, bevor die erste Zeile Code läuft. Entscheide, was du überwachen willst, ob die Entwickler das System instrumentieren, automatisierte Messungen bauen oder beides, und ob die Plattform selbst brauchbare Metriken liefert.

Die meisten Projekte laufen schon und haben diesen Schritt ausgelassen. Die praktische Antwort ist dann dieselbe, nur später: Bau jetzt Observability ein. Um zu wissen, wie dein System performt, brauchst du keine Automatisierung. Du brauchst Agenten, Instrumentierung und Telemetrie.

Ein guter Maßstab ist das Armaturenbrett im Auto. Du würdest kein Auto ohne Anzeige für Geschwindigkeit, Tankfüllung und klare Bereiche kaufen. Genauso wenig solltest du ein Projekt ohne Dashboard fahren, das Performance-Metriken so zeigt, dass das ganze Team sie versteht. Lesbare Zahlen und Farben, keine rohen Sensorspannungen.

So sieht die Reihenfolge für ein Team aus, das mit Performance-Arbeit anfängt:

SchrittWas zu tun istWarum es zuerst kommt
ObservabilityAgenten und Telemetrie einrichtenWas du nicht siehst, kannst du nicht verbessern
SichtbarkeitMetriken für das ganze Team lesbar machenPerformance ist nicht nur Sache von Ops und SRE
AutomatisierungEntwickler Messungen vorher, währenddessen und danach bauen lassenGünstiger und schneller, sobald Sichtbarkeit da ist
LasttestBei bekannten Lastspitzen fahren, außerhalb der PipelineEr ist ein Ereignis, keine Sprintaufgabe

Das absolute Minimum: die Performance deines Systems kennen, ohne dafür etwas Besonderes zu tun. Sie einfach kennen.

Es gibt nicht das eine Performance-Tool

Die vorhersehbarste Frage, die Leandro bekommt, ist die nach dem besten Tool für Performance. Die ehrliche Antwort: Das gibt es nicht.

Deck einen kompletten Esstisch und frag, mit welchem einzelnen Besteckteil du essen sollst. Die Frage ist falsch gestellt. Performance-Arbeit braucht mehrere Werkzeuge und Plattformen, passend zur jeweiligen Aufgabe, und du solltest dich nicht auf einen Typ festlegen.

Anbieter verkaufen den Ansatz “Lasttest zuerst”, weil sie genau das verkaufen. Diese Sicht ist alt und stammt aus Praktiken von vor fünfzehn oder zwanzig Jahren. Behandle die Toolauswahl als Portfolio-Entscheidung und gib dem Lasttest seinen richtigen Platz: wichtig, gelegentlich und getrennt vom kontinuierlichen Fluss.

Häufig gestellte Fragen

Warum betrachten so viele Teams Lasttests als das A und O des Performance-Tests?

Lasttests beantworten nur eine Frage: Kann das System viele Nutzer gleichzeitig bedienen? Die Gleichsetzung dieser beiden Begriffe ist eine Gewohnheit aus der Wasserfall-Entwicklung und der Zeit der physischen Server, als ein Release alle sechs Monate oder einmal im Jahr stattfand und ein einzelner Rechner jeglichen anfallenden Datenverkehr bewältigen musste. Performance-Tests sind umfassender: Sie untersuchen, wie sich ein System unter realen Bedingungen verhält, reagiert und Ressourcen verbraucht.

Wie sahen Performance-Tests vor dem Zeitalter der Cloud-Infrastruktur aus?

Das bedeutete aufwendiges Skripten und Detektivarbeit. Tools wie LoadRunner dominierten: Tester zeichneten den Browser-Traffic auf, rekonstruierten Anfragen und suchten nach Tokens, Sitzungs-IDs und Korrelationen, damit die Skripte korrekt wiedergegeben werden konnten. Den richtigen Wert in einer Flut von Anfragen zu finden, kam der Suche nach einer Nadel im Heuhaufen gleich. Der Ansatz passte zu abgeschotteten Systemen mit Zugriff nur für Administratoren und seltenen Releases.

Wann ist ein vollständiger Lasttest wirklich sinnvoll?

Führe ihn vor einem bekannten Ansturm bewusst einmalig außerhalb der Release-Pipeline durch. Spitzenbedarf kommt nicht nach Plan: Der Black Friday findet nicht in jedem Sprint statt. Der Ausfall bei Ticketmaster während des Vorverkaufs für Taylor Swift zeigt das andere Extrem, bei dem das Überspringen des Tests vor einem vorhersehbaren Ansturm öffentlichen Schaden angerichtet hat. Die meisten Releases sind Reifenwechsel, keine Rennen auf der Rennstrecke.

Kann ein System schnell sein und trotzdem ein Performance-Problem haben?

Ja. Ein System kann schnell reagieren und jeden Nutzer bewältigen, während es im Hintergrund schlecht abgestimmt ist, und das Problem zeigt sich dann in der monatlichen Cloud-Rechnung statt in der Antwortzeit. Das Bild ist ein undichter Kraftstofftank: Du kannst weiter Kraftstoff einfüllen, aber wenn der Motor nur einen Kilometer pro Liter schafft, zahlst du das Zehnfache dessen, was du eigentlich zahlen solltest.

Welche Metriken sind in Kubernetes und anderen kurzlebigen Umgebungen wichtig?

Das Start- und Abschaltverhalten, nicht nur die clientseitige Antwortzeit. Wie schnell ein neuer Pod oder eine neue Instanz hochfährt, wenn Last auftritt, und wie schnell sie wieder beendet wird, wenn sie nicht mehr benötigt wird. Beide Vorgänge verursachen Kosten. Ein aggressives Herunterfahren spart Geld, lässt aber den ersten Nutzer nach einer ruhigen Phase auf ein sich drehendes Rad starren; das Warmhalten von Instanzen sorgt für ein reibungsloseres Erlebnis und erhöht die Rechnung.

Warum stellen KI-gestützte Funktionen ein Risiko für die Leistung dar?

Weil der Verbrauch mit jedem Aufruf wächst, der den vollständigen Kontext überträgt. Ein allgemeines großes Sprachmodell kann schnell antworten und leistungsstark wirken, während Token-Verbrauch und Kosten steigen. Token und Credits erscheinen aus demselben Grund günstig, aus dem es die Cloud einst tat, und die Preise normalisieren sich. Ein Modell, das auf deinem eigenen Code und deinen Ergebnissen trainiert wurde, überträgt jedes Mal weniger Daten. Überprüfe den Verbrauch, bevor du MCPs oder Agent-zu-Agent-Konfigurationen einrichtest.

Wo sollte ein Team ansetzen, wenn bei einem laufenden Projekt noch gar keine Leistungsoptimierung stattgefunden hat?

Bei der Observability, nicht bei einem Performance-Test-Werkzeug. Richte Agenten, Instrumentierung und Telemetrie ein und mache die Zahlen dann für das gesamte Team verständlich, damit die Performance nicht mehr nur ein Anliegen von Ops und SRE ist. Die Automatisierung von Messungen folgt erst, wenn Transparenz herrscht. Das absolute Minimum ist, die Performance deines Systems zu kennen, ohne etwas Besonderes tun zu müssen.

Gibt es ein bestes Performance-Test-Werkzeug?

Ein solches Tool gibt es nicht. Für die Leistungsoptimierung braucht man mehrere Tools und Plattformen, die jeweils für die jeweilige Aufgabe ausgewählt werden; sich auf einen einzigen Typ festzulegen, ist ein Fehler. Nach dem einen besten Tool zu fragen, ist so, als würde man einen voll gedeckten Esstisch aufstellen und fragen, mit welchem einzelnen Besteckteil man essen soll. Anbieter propagieren das „Lasttest-zuerst“-Konzept, weil sie genau das verkaufen.

Diese Seite teilen

Ähnliche Beiträge