siege — HTTP-Lasttest auf der Kommandozeile
Praxis-Guide zu Siege – mehrere gleichzeitige Nutzer simulieren, Webserver benchmarken, URL-Listen abarbeiten und detaillierte Performance-Berichte erzeugen.
Siege simuliert eine beliebige Anzahl gleichzeitiger Nutzer, die deinen Webserver belasten – ideal, um Engpässe vor dem nächsten Deployment zu entdecken. Mit einer einfachen URL oder einer URL-Liste misst das Tool Durchsatz, Antwortzeiten und Fehlerquoten und liefert am Ende eine kompakte Statistik. Ob du einen schnellen Benchmark oder einen realistischen Last-Test mit Pausen zwischen den Anfragen brauchst – Siege lässt sich über Flags und eine Konfigurationsdatei fein abstimmen.
Grundlegende Nutzung
siege <url> — Startet einen Last-Test mit Standardeinstellungen (25 Nutzer, kein Zeitlimit).
siege http://localhost:8080/siege -c <users> -t <time> <url> — Testet mit einer bestimmten Anzahl gleichzeitiger Nutzer und einer festen Dauer.
siege -c 50 -t 30S http://localhost:8080/siege -c <users> -r <reps> <url> — Führt eine feste Anzahl von Wiederholungen pro Nutzer durch.
siege -c 25 -r 100 http://localhost:8080/siege -b <url> — Benchmark-Modus: keine Verzögerung zwischen den Anfragen.
siege -b -c 50 -t 30S http://localhost:8080/URL-Dateien & mehrere URLs
siege -f <file> — Liest URLs aus einer Datei (eine pro Zeile).
siege -f urls.txt -c 25 -t 60Ssiege '<url1>' '<url2>' '<url3>' — Testet mehrere URLs direkt auf der Kommandozeile.
siege 'http://localhost/' 'http://localhost/api' 'http://localhost/about'siege -i -f <file> — Internet-Modus: wählt URLs zufällig aus der Datei aus.
siege -i -f urls.txt -c 50 -t 120SHTTP-Methoden & Daten
siege -c <users> '<url> POST <data>' — Sendet POST-Anfragen mit Daten.
siege -c 10 'http://localhost/api POST {"name":"test"}'siege -H 'Content-Type: application/json' '<url> POST <data>' — POST mit JSON-Content-Type-Header.
siege -H 'Content-Type: application/json' -c 10 'http://localhost/api POST {"key":"value"}'siege -H '<header>' <url> — Fügt einen eigenen HTTP-Header hinzu.
siege -H 'Authorization: Bearer token123' -c 25 http://localhost/apisiege -A '<user-agent>' <url> — Setzt einen eigenen User-Agent-String.
siege -A 'Mozilla/5.0 LoadTest' -c 25 http://localhost/Zeitsteuerung & Verzögerungen
siege -d <seconds> <url> — Setzt eine zufällige Verzögerung zwischen 0 und N Sekunden pro Anfrage.
siege -d 5 -c 50 http://localhost:8080/siege -b -t <time> <url> — Benchmark: keine Verzögerung, maximaler Durchsatz-Test.
siege -b -t 60S -c 100 http://localhost:8080/siege -t 1M <url> — Läuft die angegebene Zeit (S=Sekunden, M=Minuten, H=Stunden).
siege -t 5M -c 50 http://localhost:8080/Protokollierung & Ausgabe
siege -v <url> — Ausführlicher Modus: zeigt jede einzelne Transaktion an.
siege -v -c 5 -r 10 http://localhost:8080/siege --log=<file> <url> — Speichert die Ergebnisse in einer bestimmten Datei.
siege --log=siege.log -c 50 -t 60S http://localhost:8080/siege -m '<message>' <url> — Fügt einen Label-Kommentar zum Log-Eintrag hinzu.
siege -m 'v2.0 release test' -c 50 -t 60S http://localhost:8080/siege --json-output <url> — Gibt die Ergebnisse im JSON-Format aus.
siege --json-output -b -c 50 -t 30S http://localhost:8080/Konfiguration
siege.config — Erstellt eine Standard-.siegerc-Konfigurationsdatei.
siege.configsiege -R <file> <url> — Nutzt eine bestimmte Konfigurationsdatei.
siege -R /path/to/.siegerc -c 50 http://localhost:8080/siege -C — Zeigt die aktuelle Konfiguration an.
siege -C Fazit
Siege ist der direkteste Weg, um zu prüfen, ob dein Webserver echte Last verträgt. Starte mit einem kurzen Benchmark-Lauf, verfeinere die Szenarien mit einer URL-Liste und protokolliere jede Testreihe mit -m, bevor du in Produktion deployest – so findest du Engpässe, bevor deine Nutzer sie finden.
Weiterführende Links
- Siege – Benutzerhandbuch – vollständige Referenz aller Optionen und Konfigurationsparameter (englisch)
- Siege – GitHub – Quellcode, Changelog und Issue-Tracker (englisch)