background preloader

Siege

Facebook Twitter

Benchmarking and Load Testing with Siege | The Remarkable Labs Blog. Linux - How to correctly use Siege to benchmark GET requests. JoeBlog Siege Home. JoeBlog Siege Manual. Introduction Siege is an http/https regression testing and benchmarking utility. It was designed to let web developers measure the performance of their code under duress, to see how it will stand up to load on the internet. It lets the user hit a web server with a configurable number of concurrent simulated users. Those users place the webserver “under siege.” Invocation The format for invoking siege is: siege options… siege supports the following command line options: ‘ -V ‘ ‘ –version’ Print version information to the screen. ‘ -h ‘ ‘ –help’ Print the help section.

. ‘ -C ‘ ‘ –config’ Print the current configuration. . ‘ -v ‘ ‘ –verbose ‘ Verbose output. . ‘ -g URL ‘ ‘ –get URL ‘ Get an HTTP transaction. . ‘ -c NUM ‘ ‘ –concurrent=NUM ‘ Concurrent users ( requires argument ) . ‘ -i ‘ ‘ –internet ‘ This option is used with a configuration file, that is a file containing many URLs. . ‘ -t NUMm ‘ ‘ –time=NUMm ‘ TIME, allows you to run the test for a selected period of time.

Configuration File Variables. JoeBlog Using Siege to Tune Apache on GNU/Linux. UPDATE: This article is now slightly dated. In the comments below, Null4Ever provides more contemporary kernel parameter settings. Siege is a great tool to measure web site performance and establish benchmark metrics. What do you do if siege shows your performance stinks? This document illustrates how to tune your server and validate those tunings with siege. For the purpose of this exercise we will tune a very old Linux server to effectively serve static content at a rate of 200 requests per second. Ben: $ uname -a Linux ben 2.4.10-4GB #1 Fri Sep 28 17:20:21 GMT 2001 i586 unknown Ben: $ bin/httpd -V Server version: Apache/2.0.47 Server built: Jul 18 2003 18:16:04 Damn, that’s old!

Bully $ siege -d1 -c200 -t1m Lifting the server siege... done. There’s no two ways about it: that’s crappy. <IfModule prefork.c> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 </IfModule> Lifting the server siege... done.