Testes de Carga
Performance
Escalabilidade
Engenharia
Confiabilidade

Lasttests: Was sie sind und warum Ihr System sie vor dem Client durchführen sollte

Beim Lasttest wird nicht gemessen, ob das System funktioniert. Es misst, wie weit es funktioniert, und das ist es, was diejenigen, die den Höhepunkt bewältigen können, von denen unterscheidet, die hineinfallen.

Jedes System funktioniert gut mit einem Benutzer. Das Problem beginnt bei Tausenden gleichzeitig.

Die meisten Teams stoßen auf die schlimmste Art und Weise an die Grenzen ihres eigenen Systems: in der Produktion, während der Spitzenzeiten, vor den Augen des Kunden. Die Kampagne explodiert, der Artikel geht viral, die Steuerfrist kommt und was robust schien, bricht zusammen, weil niemand jemals gemessen hat, wie lange es durchhalten könnte.

Es gibt Lasttests, um diese Reihenfolge umzukehren. Anstatt dass der Benutzer das Limit zufällig findet, finden Sie es absichtlich in einer kontrollierten Umgebung, bevor es weh tut.

Was ist eigentlich ein Lasttest?

Bei Lasttests wird das System einer zunehmenden Anzahl von Anfragen oder gleichzeitigen Benutzern ausgesetzt, um zu messen, wie es sich bei Bedarf verhält. Die Frage, die er beantwortet, lautet nicht „Funktioniert es?“, sondern vielmehr: „Funktioniert es mit wie vielen?“.

Beachten Sie den Unterschied. Ein Funktionstest stellt sicher, dass die Funktionalität korrekt ist. Ein Lasttest prüft, ob es korrekt und schnell bleibt, wenn es von vielen Personen gleichzeitig genutzt wird. Das sind unterschiedliche Fragen, und die zweite erscheint nur im Maßstab.

Sie simulieren eine realistische Anzahl von Benutzern, die reale Aktionen ausführen, sich anmelden, suchen, auschecken, und beobachten Reaktionszeit, Fehlerrate und Ressourcennutzung bei steigender Last. Das Ergebnis ist ein Porträt darüber, wie sich das System verschlechtert.

Der Unterschied zwischen Belastung, Stress und Leistung

Es lohnt sich, Begriffe zu trennen, die oft verwechselt werden, da jeder Begriff eine andere Frage beantwortet.

Lasttests messen das Verhalten bei erwarteter und steigender Nachfrage und wie viele gleichzeitige Benutzer das System mit akzeptabler Qualität unterstützt. Stresstests gehen absichtlich übertrieben, um zu sehen, wie das System zusammenbricht und sich erholt. Leistungstests im weitesten Sinne messen Reaktionszeiten und Effizienz, oft unter einer gewissen Last.

Cargo antwortet: „Kann es wie erwartet halten?“ Stress antwortet: „Was passiert im Extremfall?“ Wenn Sie sie im Kopf getrennt halten, vermeiden Sie falsche Schlussfolgerungen aus dem falschen Test.

Warum dies eine geschäftliche Entscheidung ist, nicht nur eine technische

Es ist verlockend, Fracht als technisches Detail zu betrachten. Es ist ein Fehler. Die Kapazitätsgrenze Ihres Systems ist die Grenze dafür, wie viele Kunden Sie gleichzeitig bedienen können, und das ist reine Geschäftssache.

Stellen Sie sich einen öffentlichen Planungsdienst vor, der an einem bestimmten Tag offene Stellen freigibt. Die gesamte berechtigte Bevölkerung trifft innerhalb desselben Zeitfensters ein. Wenn niemand die Last getestet hat, stürzt das System genau dann ab, wenn es darauf ankommt, und der Fehler wird zur Schlagzeile. Die Kosten sind nicht technischer Natur; genießt institutionelles Vertrauen.

Das Gleiche gilt für ein Startup, das einen Start vorbereitet. In Medien zu investieren, um den Traffic in die Höhe zu treiben, und die Website zum Zeitpunkt des Traffics offline zu halten, verschlingt doppelt Geld: die Medien und den Ruf.

Was gemessen werden soll und was die Metriken verbergen

Die offensichtlichen Messgrößen sind Reaktionszeit und Fehlerrate. Sie sind wichtig, aber sie erzählen nur einen Teil der Geschichte.

Das durchschnittliche Wetter täuscht. Ein guter Durchschnitt kann einen Bruchteil der Benutzer mit schlechten Erfahrungen verbergen. Aus diesem Grund betrachte ich Perzentile, also die Zeitspanne, in der 5 % oder 1 % das Schlimmste erlebt haben, und nicht die Durchschnittswerte. Darin liegt die wahre Frustration.

Schauen Sie sich auch die dahinter stehenden Ressourcen an: CPU-Auslastung, Speicher, Bankverbindungen, Anforderungswarteschlange. Oft ist der Engpass nicht der Anwendungsserver, sondern die Datenbank oder ein schlecht dimensionierter Verbindungspool. Der Belastungstest zeigt nicht nur, dass es sich verschlechtert hat; gut instrumentiert, zeigt wo.

Die häufigsten Fehler

Der erste Fehler besteht darin, in einer Umgebung zu testen, die nicht wie eine Produktionsumgebung aussieht. Das Ausführen von Lasten auf einer winzigen Maschine oder mit einer leeren Bank führt zu schönen und nutzlosen Zahlen. Die Testumgebung muss repräsentativ sein und die Datenmenge muss der realen Umgebung ähneln.

Die zweite besteht darin, unrealistische Benutzer zu simulieren. Tausend identische Anfragen am selben Endpunkt spiegeln nicht menschliches Verhalten wider. Echte Benutzer durchsuchen, denken nach, wiederholen Aktionen und geben auf. Ein Nutzlastszenario reproduziert dieses Muster, kein einheitlicher Roboter.

Die dritte und häufigste Möglichkeit besteht darin, einmal vor dem Start zu testen und nie wieder. Die Kapazität ist nicht statisch. Jede neue Funktion, jede neue Anfrage an die Bank kann das Limit verändern. Einmalige Belastungstests haben eine kurze Gültigkeit.

Wann man anfangen sollte, sich Sorgen zu machen

Nicht jedes System muss vom ersten Tag an einem Lasttest unterzogen werden. Ein internes Produkt, das von zehn Personen genutzt wird, rechtfertigt den Aufwand nicht. Die richtige Frage betrifft die Spitzenbelastung.

Wenn Ihr System vorhersehbare Momente konzentrierter Nachfrage, Kampagnen, Fristen, Markteinführungen, Saisonalität oder schnelles Basiswachstum aufweist, sind Lasttests nicht mehr optional. Und der beste Zeitpunkt für die erste Messung ist vor dem ersten großen Anstieg, nicht danach.

Die Änderung der Denkweise, die ich befürworte, ist einfach: Fähigkeit ist eine Voraussetzung, keine Überraschung. Es ist genauso wichtig, die Obergrenze Ihres Systems zu kennen, wie zu wissen, ob es hält, was es verspricht. Man sagt Ihnen, dass es funktioniert; der andere sagt Ihnen, wie lange es noch funktioniert, wenn der Erfolg eintritt.

Wenn in Ihrer Organisation ein Spitzenereignis bevorsteht und niemand sicher weiß, ob das System damit umgehen kann, lohnt es sich, diese Art von Risiko im Voraus und nicht währenddessen anzugehen. Ich habe andere Texte auf dem Blog über Leistung, Skalierbarkeit und Zuverlässigkeit, die zu diesem Thema passen.

Lesen Sie auch