siege
HTTP load testing and benchmarking tool
TLDR
Test a URL with default settings (15 concurrent users)
SYNOPSIS
siege [options] [URL]
DESCRIPTION
siege is a multi-threaded HTTP/HTTPS load testing and benchmarking utility. It simulates multiple concurrent users accessing a web server to measure performance under stress. Metrics reported include response time, transaction rate, throughput, concurrency, and availability.
The tool operates in three modes: regression (sequential URL testing), internet simulation (randomized access patterns with -i), and brute force benchmarking (maximum throughput with -b).
By default, each simulated user pauses randomly between requests to simulate realistic traffic. The -d option controls this delay range, while -b eliminates it entirely for pure throughput testing.
Configuration is stored in ~/.siege/siege.conf. URLs can be specified on the command line or in a file with -f, supporting POST data and custom headers.
PARAMETERS
-c, --concurrent num
Number of concurrent simulated users (default: 15)-r, --reps num|once
Number of repetitions per user; "once" runs each URL once-t, --time NUMm
Run duration with modifier: S (seconds), M (minutes), H (hours)-d, --delay num
Random delay (0 to num seconds) between requests per user-b, --benchmark
Benchmark mode; removes delays for maximum throughput-f, --file file
Read URLs from a text file-i, --internet
Simulate internet traffic by randomizing URL order-g, --get URL
Display HTTP headers for a single request-p, --print URL
Display headers and response body-A, --agent string
Override the User-Agent header-H, --header "header: value"
Add custom request header-T, --content-type type
Override Content-Type header-v, --verbose
Show detailed output with color-coded responses-q, --quiet
Suppress output; useful for scripts-L, --log file
Write results to specified log file-C, --config
Display current configuration settings
CONFIGURATION
~/.siege/siege.conf
User configuration file for default concurrency, delay, logging, protocol version, and other settings. Generated with siege.config.~/.siege/urls.txt
Default URL file used when no -f option or URL argument is provided.
CAVEATS
High concurrency levels can overwhelm target servers and may constitute a denial-of-service attack. Always obtain permission before load testing servers you do not own. Some hosting providers prohibit load testing in their terms of service.
HISTORY
siege was created by Jeffrey Fulmer (JoeDog) and first released around 2000. It was designed to help web developers measure their code's performance under load. The tool has been actively maintained and updated to support modern HTTP features including HTTPS and HTTP/1.1.
