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 60S

siege '<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 120S

HTTP-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/api

siege -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.config

siege -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.

Verwandte Kommandos

  • ab – Apache-eigenes Tool für schnelle HTTP-Benchmarks
  • wrk – modernes HTTP-Benchmarking-Tool mit Lua-Scripting
  • h2load – Last-Tests für HTTP/2- und HTTP/3-Server