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

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:

sudo apt-get install siege

Nel caso in cui stai usando una qualsiasi altra distribuzione Linux (ad esempio CentOS), puoi ricorrere alla seguente istruzione:

wget http://download.joedog.org/siege/siege-latest.tar.gz

Alla fine del download, scompatta il pacchetto con il comando:

tar xzvf siege-latest.tar.gz

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):

cd siege-3.0.7

Poi procedi alla sua compilazione e installazione:

./configure
make && make install

Una volta terminato il setup, torna alla root e per avere conferma che tutto sia andato a buon fine, digita:

siege  v

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.

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

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