Hilfe
Alles, was du brauchst, um lasttester zu benutzen.
Schnellstart: dein erster Lasttest in 5 Minuten
-
Hetzner-Token hinterlegen — Einstellungen → API-Token einfügen → speichern.
Damit lasttester Worker-Server für dich erstellen kann.
-
Worker erstellen — Worker → „Neuen Worker von Hetzner anlegen" → „Erstellen" klicken.
Dauert ~90 Sek. Der Worker erscheint dann grün in der Liste.
-
Szenario mit dem Assistenten anlegen — Assistent starten.
Schritt-für-Schritt-Fragen, keine Vorkenntnisse nötig.
- Lasttest starten — am Ende des Assistenten auf „Erstellen & starten" klicken.
- Ergebnis ansehen — live im Browser. Nach dem Test bleibt alles in der Lasttests-Liste.
- Worker wieder abschalten — wenn du fertig bist: Worker → Löschen. Die VM wird bei Hetzner gelöscht, die Kosten hören auf.
Wie lasttester funktioniert
lasttester besteht aus zwei Teilen:
- Controller (dieser Server): stellt die Weboberfläche bereit, speichert Szenarien und Lasttests, orchestriert die Tests.
- Worker (Hetzner-VMs, die du bei Bedarf anlegst): führen die eigentlichen Lasttests aus. Jede Sekunde Last = 1 Sekunde Worker-Laufzeit = Geld. Abschalten, wenn nicht benötigt.
Ein Szenario ist eine gespeicherte Test-Definition (z. B. „100 Nutzer laden https://example.com 60 Sekunden lang"). Ein Lasttest ist die Ausführung eines Szenarios zu einem bestimmten Zeitpunkt. Lasttests kann man später vergleichen.
Welcher Szenario-Typ passt?
| Typ | Wann nehmen | Werkzeug |
|---|---|---|
| HTTP | Klassische Last auf Webseiten, APIs, PHP-Apps. Du gibst Anfragen pro Sekunde und Dauer an. | k6 |
| HLS-Stream | Streaming-Test. Gib die .m3u8-URL an, die Anzahl simulierter Zuschauer und die Dauer. Segmente werden tatsächlich heruntergeladen — damit belastest du Origin/CDN realistisch. |
k6 |
| WebSocket | Chat/Live-Streams. Wie viele Clients, wie viele Nachrichten pro Sekunde pro Client. | k6 |
| Browser (Seite laden) | Echte Chrome-Browser laden die Seite und warten. Für „sieht die Seite überhaupt noch gut aus unter Last?"-Tests. | Playwright |
| Browser (Player mit Klick) | Echter Chrome lädt die Player-Seite, klickt den Play-Button und schaut X Sekunden zu. Realistischster Stream-Test, aber teuer (max. 20 Browser pro Worker). | Playwright |
Faustregel: Protokoll-Tests (HTTP/HLS/WS) für die große Last (10.000+ virtuelle Nutzer), Browser-Tests nur für Smoke-Checks mit 50–500 Browsern.
Wie viele Worker brauche ich?
| Ziel | Empfohlener Typ | Anzahl | Grob-Kosten |
|---|---|---|---|
| Schnell ausprobieren | CX22 (2 vCPU, 4 GB) | 1 | ~0,006 €/h |
| 1.000 HTTP-Nutzer (RPS) | CPX22 (2 vCPU AMD) | 1 | ~0,013 €/h |
| 10.000 HTTP-Nutzer | CPX22 | 2–3 | ~0,03–0,04 €/h |
| 5.000 HLS-Viewer (3 Mbit/s) | CPX32 | 3–5 | ~0,07–0,11 €/h |
| 100 echte Browser | CPX32 | 5 | ~0,11 €/h |
| 1.000 echte Browser | CPX42 | ~20 | ~0,82 €/h |
Faustregel zur Typ-Familie: CX = billig, älter, reicht für Smoke-Tests. CPX = Allrounder, gute Preisleistung, hier startet man normalerweise. CCX = dedizierte vCPUs, wenn du absolute Stabilität unter Dauerlast brauchst.
Wenn zu wenig Worker da sind: der Lasttest meldet „kein Worker online". Einfach mehr erstellen, dann nochmal starten.
Fehlerbehebung
sudo journalctl -u lasttester-agent -n 50.
sudo lasttester-controller workers:purge --confirm.
sudo tail -f /var/log/lasttester-autoupdate.log. Pausieren: sudo touch /etc/lasttester/autoupdate.disabled.
sudo lasttester-controller admin:create-user --email=x@beispiel.de --role=admin --password=GEHEIM.
Was bedeuten die Live-Metriken?
| Metrik | Bedeutung |
|---|---|
| Anfragen/Sek. | HTTP-Anfragen pro Sekunde, die die Worker an das Ziel senden. |
| Antwortzeit (Ø) | Durchschnittliche Dauer vom Abschicken bis zur Antwort. |
| p95 / p99 | 95 % bzw. 99 % aller Antworten waren schneller als dieser Wert. Steigt der Wert, hat dein Server Probleme. |
| HLS-Stalls | Wie oft ein Segment nicht rechtzeitig geladen wurde — entspricht Buffering für echte Zuschauer. |
| HLS-Bitrate | Effektiver Durchsatz pro Zuschauer. Sollte nah an der nominalen Stream-Bitrate bleiben. |
| Worker-CPU/-RAM | Wenn diese über 80 % gehen, ist nicht dein Server am Limit, sondern der Worker. Mehr Worker erstellen. |
Weiterführende Links
- k6 Dokumentation — für Custom-Scripts
- Playwright Docs — Browser-Automation
- Hetzner Cloud Console — hier Token generieren
- MetricsQL — für Custom-Dashboard-Queries