Jul 022011
 

siege

Volete verificare come funziona il vostro nuovo sito sotto un carico pesante ?
Mettetelo sotto assedio !

Siege è un programma per effettuare test di carico http ed è una untility di benchmarking. E’ stato progettato per consentire agli sviluppatori web di misurare il proprio codice sotto carico, per vedere come funzionerà una volta che avrà il carico di internet. Siege supporta l’autenticazione di base, i cookie, i protocolli HTTP e HTTPS. Consente ai suoi utenti di colpire un web server con un numero configurabile di browser web simulati. Quei browser posizionano il server “sotto assedio”.


PIATTAFORME SUPPORTATE
Siege è stato scritto su GNU/Linux ed è stato portato con successo su AIX, BSD, HP-UX e Solaris. Si dovrebbe compilare su molte varianti di UNIX System V e sulla maggior parte dei nuovi sistemi BSD.

Installazione

Siege è disponibile su Debian e Ubuntu quindi è possibile installarlo con:

aptitude install siege

Uso Base

Siege permette di “stressare” un web server con un numero ‘n’ di utenti per numero ‘t’ di volte, dove n e t vengono definiti da parte dell’utente. Si registra il tempo di durata della prova così come la durata di ogni singola operazione.

Per un primo test potete dare il comando:

siege -b -c 10 -r 3 http://yoursite.com
 
** SIEGE 2.70
** Preparing 10 concurrent users for battle.
The server is now under siege...
HTTP/1.1 200   2.40 secs:   11707 bytes ==> /
HTTP/1.1 200   3.13 secs:   11707 bytes ==> /
HTTP/1.1 200   3.39 secs:   11707 bytes ==> /
HTTP/1.1 200   3.45 secs:   11707 bytes ==> /
HTTP/1.1 200   3.52 secs:   11707 bytes ==> /
HTTP/1.1 200   3.57 secs:   11707 bytes ==> /
HTTP/1.1 200   3.61 secs:   11707 bytes ==> /
HTTP/1.1 200   3.64 secs:   11707 bytes ==> /
HTTP/1.1 200   3.70 secs:   11707 bytes ==> /
HTTP/1.1 200   3.74 secs:   11707 bytes ==> /
HTTP/1.1 200   4.09 secs:   11707 bytes ==> /
HTTP/1.1 200   4.00 secs:   11707 bytes ==> /
HTTP/1.1 200   5.25 secs:   11707 bytes ==> /
HTTP/1.1 200   4.34 secs:   11707 bytes ==> /
HTTP/1.1 200   4.48 secs:   11707 bytes ==> /
HTTP/1.1 200   4.82 secs:   11707 bytes ==> /
HTTP/1.1 200   4.77 secs:   11707 bytes ==> /
HTTP/1.1 200   5.00 secs:   11707 bytes ==> /
HTTP/1.1 200   4.95 secs:   11707 bytes ==> /
HTTP/1.1 200   5.54 secs:   11707 bytes ==> /
HTTP/1.1 200   5.42 secs:   11707 bytes ==> /
HTTP/1.1 200   4.61 secs:   11707 bytes ==> /
HTTP/1.1 200   5.45 secs:   11707 bytes ==> /
HTTP/1.1 200   5.67 secs:   11707 bytes ==> /
HTTP/1.1 200   6.26 secs:   11707 bytes ==> /
HTTP/1.1 200   5.64 secs:   11707 bytes ==> /
HTTP/1.1 200   7.34 secs:   11707 bytes ==> /
HTTP/1.1 200   6.58 secs:   11707 bytes ==> /
HTTP/1.1 200   8.01 secs:   11707 bytes ==> /
HTTP/1.1 200   7.11 secs:   11707 bytes ==> /
done.
Transactions:		          30 hits
Availability:		      100.00 %
Elapsed time:		       15.29 secs
Data transferred:	        0.33 MB
Response time:		        4.78 secs
Transaction rate:	        1.96 trans/sec
Throughput:		        0.02 MB/sec
Concurrency:		        9.38
Successful transactions:          30
Failed transactions:	           0
Longest transaction:	        8.01
Shortest transaction:	        2.40

Questo ha eseguito il benchmark del sito http://yourwebsite.com, lanciando 10 connessioni contemporanee al sito, ed eseguendo il test in un ciclo di 3 volte.

Di default tutti gli output delle prove di benchmarking di siege sono registrate nel file di output /var/siege.log
Un’altra opzione che offre siege è la possibilità di controllare un certo numero di indirizzi del sito web fornito attraverso l’opzione -i.

-i, --internet          INTERNET,  generates  user  simulation by randomly hitting the URLs read from the urls.txt file.
This option is viable only with the urls.txt file.

Un’altro esempio

 
siege -c 30 -i -t 10m -d 5 -f sitemap.txt

Questo simula 30 utenti simultanei, tutti richiedono pagine casuali da un elenco di URL (tratte dal file sitemap.txt ), con un ritardo di 5 secondi dopo ogni pagina (per simulare la lettura della pagina da parte dell’utente). Questo è stato impostato per essere eseguito per 10 minuti.

E’ possibile impostare le opzioni nel file di configurazione /$HOME/.siegerc come ad esempio:

/root/.siegercerbose = true
show-logfile = true
logging = true
protocol = HTTP/1.1
chunked = true
cache = false
connection = close
concurrent = 15
delay = 1
accept-encoding = gzip
spinner = true
internet = true
benchmark = true

Conclusioni

Siege è un piccolo programma ben fatto, che nello stile Unix fa bene una cosa, chiama varie URL facendo così un primo benchmark su un sito web. Da tenere presente nei vostri test di carico.

Popular Posts:

Flattr this!

  2 Responses to “Metti il tuo sito sotto Assedio”

  1. […] this, for a bit more on one of the […]

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

*