LinuxCommandLibrary

siege

HTTP load testing and benchmarking tool

TLDR

Test a URL with default settings (15 concurrent users)

$ siege [https://example.com/]
copy
Benchmark with specific concurrency and duration
$ siege -c [50] -t [1M] [https://example.com/]
copy
Run benchmark mode (no delays between requests)
$ siege -b -c [100] -t [30S] [https://example.com/]
copy
Test multiple URLs from a file
$ siege -f [urls.txt]
copy
Simulate internet traffic (random URL selection)
$ siege -i -f [urls.txt] -c [25] -t [5M]
copy
Run with custom delay between requests
$ siege -d [2] -c [10] [https://example.com/]
copy
Display headers for a single request
$ siege -g [https://example.com/]
copy
Show current configuration
$ siege -C
copy

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.

SEE ALSO

ab(1), wrk(1), curl(1), hey(1), vegeta(1)

> TERMINAL_GEAR

Curated for the Linux community

Copied to clipboard

> TERMINAL_GEAR

Curated for the Linux community