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:
- None Found
[…] Fonte […]
[…] this, for a bit more on one of the […]