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 can be installed with yum (2.66 version from rpmforge repo or 2.70 version from epel repo) or from sources that can be found on the project website. In our case, we will use rpm package from epel repo.
Installation and initial configuration :
[root@localhost ~]# yum install siege -y [root@localhost ~]# siege.config New configuration template added to /root/.siegerc Run siege -C to view the current settings in that file [root@localhost ~]# siege -C CURRENT SIEGE CONFIGURATION JoeDog/1.00 [en] (X11; I; Siege 2.70) Edit the resource file to change the settings. ---------------------------------------------- version: 2.70 verbose: true debug: false protocol: HTTP/1.1 connection: close concurrent users: 15 time to run: n/a repetitions: n/a socket timeout: 30 delay: 1 sec internet simulation: false benchmark mode: false failures until abort: 1024 named URL: none URLs file: /usr/etc/urls.txt logging: true log file: /var/siege.log resource file: /root/.siegerc allow redirects: true allow zero byte data: true allow chunked encoding: true proxy auth: www auth:Available options:
[root@localhost ~]# siege -h SIEGE 2.70 Usage: siege [options] siege [options] URL siege -g URL Options: -V, --version VERSION, prints the version number. -h, --help HELP, prints this section. -C, --config CONFIGURATION, show the current config. -v, --verbose VERBOSE, prints notification to screen. -g, --get GET, pull down HTTP headers and display the transaction. Great for application debugging. -c, --concurrent=NUM CONCURRENT users, default is 10 -i, --internet INTERNET user simulation, hits URLs randomly. -b, --benchmark BENCHMARK: no delays between requests. -t, --time=NUMm TIMED testing where "m" is modifier S, M, or H ex: --time=1H, one hour test. -r, --reps=NUM REPS, number of times to run the test. -f, --file=FILE FILE, select a specific URLS FILE. -R, --rc=FILE RC, specify an siegerc file -l, --log[=FILE] LOG to FILE. If FILE is not specified, the default is used: PREFIX/var/siege.log -m, --mark="text" MARK, mark the log file with a string. -d, --delay=NUM Time DELAY, random delay before each requst between 1 and NUM. (NOT COUNTED IN STATS) -H, --header="text" Add a header to request (can be many) -A, --user-agent="text" Sets User-Agent in request Copyright (C) 2010 by Jeffrey Fulmer, et al. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.Testing:
[root@localhost ~]# siege -b -c 10 -r 3 http://nuxadmin.blogspot.com ** SIEGE 2.70 ** Preparing 10 concurrent users for battle The server is now under siege... HTTP/1.1 200 1.04 secs: 95476 bytes ==> / HTTP/1.1 200 1.17 secs: 95476 bytes ==> / HTTP/1.1 200 1.19 secs: 95476 bytes ==> / HTTP/1.1 200 1.56 secs: 95476 bytes ==> / HTTP/1.1 200 1.80 secs: 95476 bytes ==> / HTTP/1.1 200 0.79 secs: 95476 bytes ==> / HTTP/1.1 200 1.85 secs: 95476 bytes ==> / HTTP/1.1 200 2.07 secs: 95476 bytes ==> / HTTP/1.1 200 1.12 secs: 95476 bytes ==> / HTTP/1.1 200 0.81 secs: 95476 bytes ==> / HTTP/1.1 200 2.78 secs: 95476 bytes ==> / HTTP/1.1 200 1.07 secs: 95476 bytes ==> / HTTP/1.1 200 0.85 secs: 95476 bytes ==> / HTTP/1.1 200 2.93 secs: 95476 bytes ==> / HTTP/1.1 200 1.15 secs: 95476 bytes ==> / HTTP/1.1 200 0.91 secs: 95476 bytes ==> / HTTP/1.1 200 2.16 secs: 95476 bytes ==> / HTTP/1.1 200 1.68 secs: 95476 bytes ==> / HTTP/1.1 200 1.31 secs: 95476 bytes ==> / HTTP/1.1 200 0.78 secs: 95476 bytes ==> / HTTP/1.1 200 1.20 secs: 95476 bytes ==> / HTTP/1.1 200 1.37 secs: 95476 bytes ==> / HTTP/1.1 200 2.00 secs: 95476 bytes ==> / HTTP/1.1 200 1.45 secs: 95476 bytes ==> / HTTP/1.1 200 1.36 secs: 95476 bytes ==> / HTTP/1.1 200 0.61 secs: 95476 bytes ==> / HTTP/1.1 200 0.58 secs: 95476 bytes ==> / HTTP/1.1 200 5.55 secs: 95476 bytes ==> / HTTP/1.1 200 0.49 secs: 95476 bytes ==> / HTTP/1.1 200 0.47 secs: 95476 bytes ==> / done. Transactions: 30 hits Availability: 100.00 % Elapsed time: 6.52 secs< Data transferred: 2.73 MB Response time: 1.47 secs Transaction rate: 4.60 trans/sec Throughput: 0.42 MB/sec Concurrency: 6.76 Successful transactions: 30 Failed transactions: 0 Longest transaction: 5.55 Shortest transaction: 0.47 FILE: /var/siege.log You can disable this annoying message by editing the .siegerc file in your home directory; change the directive 'show-logfile' to falseAnother test:
[root@localhost ~]# siege -c 30 -i -t 30s -d 5 http://nuxadmin.blogspot.com ... Lifting the server siege... done. Transactions: 167 hits Availability: 100.00 % Elapsed time: 29.59 secs Data transferred: 15.21 MB Response time: 2.48 secs Transaction rate: 5.64 trans/sec Throughput: 0.51 MB/sec Concurrency: 13.99 Successful transactions: 167 Failed transactions: 0 Longest transaction: 6.84 Shortest transaction: 0.78 ...
Aucun commentaire:
Enregistrer un commentaire