Una storia lunga 10 anni



e-xtrategy

blog

le prestazioni di un webserver

uno dei tool più utilizzati per effettuare performance test è apachebench. sviluppato da apache, apachebench è un command line tool di semplicissimo utilizzo che permette di eseguire un determinato numero di richieste http ad una determinata pagina web.

possiamo utilizzarlo da linux, windows e mac e possiamo testare un server web sia locale che remoto. vengono fatte chiamate http standard quindi è possibile testare sia web server apache che di altro tipo. la configurazione ideale  è quella di avere un client da cui lanciare i test e un’ottima connessione verso il server (rete locale). se tra client e server c’e’ di mezzo una connessione internet, probabilmente il collo di bottiglia sarà quello.

possiamo effettuare il primo semplice test tramite il comando:

ab -n 100 -c 5 http://www.miosito.it/home.html

dove:

-n 100: ab invierà 100 richieste http alla pagina home.html di www.miosito.it
-c 5 : 5 sarà il numero di richieste contemporanee che ab invierà

ab ritornerà un output di questo tipo

——————————————————————————
Server Software:        Apache/2.2.16
Server Hostname:        www.miosito.it
Server Port:            80

Document Path:          /home.html
Document Length:        1144 bytes

Concurrency Level:      5
Time taken for tests:   0.239 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      133500 bytes
HTML transferred:       114400 bytes
Requests per second:    418.98 [#/sec] (mean)
Time per request:       11.934 [ms] (mean)
Time per request:       2.387 [ms] (mean, across all concurrent requests)
Transfer rate:          546.23 [Kbytes/sec] received

Connection Times (ms)
min  mean[+/-sd] median   max
Connect:        0    5   4.3      4      26
Processing:     1    7   5.2      6      29
Waiting:        0    4   4.8      3      28
Total:          3   12   5.3     11      31

Percentage of the requests served within a certain time (ms)
50%     11
66%     12
75%     13
80%     14
90%     16
95%     28
98%     31
99%     31
100%     31 (longest request)
——————————————————————————

naturalmente per test più attendibili occorre aumentare il numero di richieste e ripetere il test più volte modificando il numero di richieste contemporanee. ovviamente testare una pagina html statica non ha molto senso ma, se il test viene fatto su uno script lato server ad es php, è possibile valutare il comportamento del server in presenza o meno di sistemi di caching.

nel caso in cui dovessimo testare un script che riceve due parametri in post (ad es user e pass) per effettuare il login alla nostra applicazione web, ci vengono in aiuto i flag -p e -T, ed il comando da lanciare diventerà:

ab -n 100 -c 10 -p postfile.txt -T application/x-www-form-urlencoded http://www.miosito.it/login.php

simuleremo 100 richieste di login con le credenziali di accesso specificate nel file postfile.txt in questo formato:

user=prova&pass=prova

un’altra opzione di ab che può essere molto utile è rappresentata dal flag -e

ab -n 100 -c 10 -p postfile.txt -T application/x-www-form-urlencoded -e output.csv http://www.miosito.it/login.php

che oltre all’output stampato a schermo, creerà un file comma separeted che conterrà l’avanzamento percentuale e in millisecondi delle richieste effettuate.

esistono anche altre opzioni per le quali vi rimandiamo al manuale di ab

buon test
daniele


Scrivi un commento

(non verrà pubblicata)


8 + = sedici



lavorano con noi