Come effettuare un load test del server con Siege (1)

Hai appena attivato un hosting professionale, un server dedicato o un server cloud e ora vuoi scoprire le prestazioni che può garantire al tuo sito sottoponendolo a intensi sforzi per verificare i tempi di risposta?

In gergo tecnico questa tipologia di prova viene chiamata load test o stress test, ma non hai ancora un’idea ben chiara di come programmare e condurre un load test sul tuo server. La risposta è in un nome: Siege. Forse ne avrai già sentito parlare, Siege è lo strumento che ti aiuta a comprendere se il sito viene servito correttamente all’utenza che ne fa richiesta anche al crescere del numero di connessioni e utenti.

Con Siege puoi simulare la navigazione di più utenti contemporaneamente e verificare subito performance, tempi di risposta delle tue pagine e capacità del server di servire correttamente ogni richiesta, evidenziando eventuali problematiche ed errori.

Lo strumento che più spesso si usa per completare un load test è Apache Benchmark, che viene fornito di serie sui server in cui viene installato Apache come web server. Siege, dal canto suo, può essere utilizzato non solo con Apache, ma anche con tutti gli altri web server disponibili sul mercato, come Nginx.

Siege è quindi un’utilità di benchmark e load test HTTP da linea di comando e si differenzia da Apache Benchmark per la possibilità di lavorare con differenti web server e per l’opportunità di testare contemporaneamente più URL, permettendo così di simulare l’uso del server con maggiore accuratezza e migliore aderenza alla realtà operativa.

Per iniziare a usare Siege bisogna prestare attenzione alle operazioni che si compiono, perché un uso improprio potrebbe provocare un down al tuo web server. Inoltre, l’uso con alti volumi di richieste verso URL o IP di server o applicazioni online che non ti appartengono potrebbe essere valutato come attacco DoS e essere perseguito legalmente.

Come installare Siege

Siege è disponibile per i sistemi Linux, Solaris e Mac OS (non per Windows) e può essere scaricato e installato con semplici comandi.

Se stai utilizzando una qualsiasi versione di Ubuntu, puoi scaricare e installare Siege sul tuo sistema operativo con il seguente comando:
[code type=”php”]sudo apt-get install siege[/code]

Nel caso in cui stai usando una qualsiasi altra distribuzione Linux (ad esempio CentOS), puoi ricorrere alla seguente istruzione:
[code type=”php”]wget http://download.joedog.org/siege/siege-latest.tar.gz[/code]

Alla fine del download, scompatta il pacchetto con il comando:
[code type=”php”]tar xzvf siege-latest.tar.gz[/code]

L’ultima versione di Siege nel momento in cui scrivo è la 3.0.7, per cui spostati nella directory di decompressione con questo comando (verifica con un dir il nome esatto della cartella sul tuo sistema):
[code type=”php”]cd siege-3.0.7[/code]

Poi procedi alla sua compilazione e installazione:
[code type=”php”]
./configure
make && make install
[/code]

Una volta terminato il setup, torna alla root e per avere conferma che tutto sia andato a buon fine, digita:
[code type=”php”]siege – v[/code]

Se Siege funziona, vedrai comparire la versione del tool di load test che hai installato e una lista di parametri da usare da linea di comando.

[code type=”markup”]
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.
-q, –quiet QUIET turns verbose off and suppresses output.
-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
-T, –content-type=”text” Sets Content-Type in request
[/code]

Per procedere con l’uso di Siege, ti do appuntamento alla prossimo post dedicato al solo funzionamento dello strumento di load testing. Stay tuned!

Condividi