Siege is an http load testing and benchmarking utility. It was designed to let web developers measure their code under duress, to see how it will stand up to load on the internet. Siege supports basic authentication, cookies, HTTP and HTTPS protocols. It lets its user hit a web server with a configurable number of simulated web browsers. Those browsers place the server “under siege.”
Siege was written on GNU/Linux and has been successfully ported to AIX, BSD, HP-UX and Solaris. It should compile on most System V UNIX variants and on most newer BSD systems. Because Siege relies on POSIX.1b features not supported by Microsoft, it will not run on Windows. Of course you can use Siege to test a Windows HTTP server.
NEWS & RELEASE INFORMATION
SIEGE-3.0.7 This release fixes a bug introduced in siege-3.0.6. Rather than strictly adhere to the RFC, siege will construct an absolute URL from a relative one. While this is convenient it missed a usecase. Siege-3.0.6 barfs on Location: http://localhost All siege 3.0.6 users should upgrade to 3.0.7.
SIEGE-3.0.6 With this release, siege changes the way it handles –reps=once. It now divides a urls.txt file evenly among all its users, and each URL in the file is hit exactly once. This release also includes several fixes and a documentation update.
SIEGE-3.0.5 This release addresses another inconsistency between the HTTP standard and practice. While RFC 2616 allows a port designation in the Host header, it confuses too many implementations for Siege to continue to send it. This version also fixes several significant bugs. All Siege users should update to this version.
SIEGE-3.0.4 Although RFC 2616 specifies that Location directives must contain an absolute URI, most Web clients normalize relative URIs. This release adds conventional compliance with relative URI handling. Ironically, it also includes a new default user-agent so that field is in compliance with RFC 2616.
SIEGE-3.0.3 This release features one prominent new feature, URL escaping. Reserved characters are %-encoded as per RFC 3986. This release also features numerous bugfixes such as improved variable evaluation in the urls.txt file, dynamic Accept-Encoding, improved siegerc parsing, and several memory fixes.
SIEGE-3.0.0 This is the first major siege release in over a decade. Significant portions were rewritten in order to add support for additional protocols. This release adds limited support for FTP. You can get and put files to a server. FTP is invoked automatically based on the URL scheme, i.e., ftp://
SIEGE-2.74 This is minor bug fix that corrects verbose output formatting. Debug messages were creeping into verbose mode. Oh, noes! What should we do? If you’re a 2.73 user who doesn’t care for debug annoyances you should probably upgrade to version 2.74.
SIEGE-BETA – Developers should submit patches that are diff’d against the latest beta.
“This is an excellent application that does something expensive suites don’t. ie. It does what the users expects it to do, and does it simply.”
— Sgt. Scrub