Skip to content
Latchkey

siege: Usage, Options & Common CI Errors

siege hammers a URL (or a list) with concurrent simulated users.

siege simulates many concurrent users hitting one or more URLs. In CI its useful signal is the Availability percentage, which you can gate on, but the default config file can surprise you.

What it does

siege runs -c concurrent users against a URL or a file of URLs, for a number of repetitions (-r) or a time (-t), and reports transactions, availability, and response time. -b (benchmark) removes the inter-request delay for max throughput.

Common usage

Terminal
siege -c 50 -r 20 https://example.com/
siege -c 100 -t 30S https://example.com/        # 30 seconds (note S)
siege -b -c 25 -r 100 https://example.com/      # benchmark mode
siege -f urls.txt -c 30 -t 1M                   # list of URLs
siege -c 20 -t 10S --no-parser https://api/x

Options

FlagWhat it does
-c <N>Concurrent users
-r <N>Repetitions per user
-t <NUM>S|M|HTime limit (unit letter required)
-bBenchmark: no delay between requests
-f <file>Read URLs from a file
-q / --no-parserQuiet / skip HTML parsing of responses

Common errors in CI

"[error] socket: unable to connect ... Connection refused" means the target is down. "[alert] socket: read error Connection reset by peer" usually means the server hit its connection limit. The -t unit letter is required: -t 30S (seconds), -t 1M (minutes) - bare -t 30 is invalid. siege exits 0 even with failed transactions; gate on the "Availability: X %" and "Failed transactions" lines. At high -c you can hit "Too many open files"; raise ulimit -n. siege reads ~/.siege/siege.conf, which can override flags.

Related guides

Run this faster and cheaper on Latchkey managed runners. Start free →