Calcolare il Benchmark di un server http

Installando apache ci viene anche data la possibilià di usufruire di una piccola applicazione per effettuare il test di un server web. Questo ci viene particolarmente utile nel caso si voglia testare due diversi server alle stesse condizioni (apache e lighthttpd ad esempio)
L’applicazione che useremo è ab che potrete trovare installata come ab2 in alcune installazioni.

Il suo utilizzo è semplice ed immediato:

  • Si prende nota del carico del server con il comando top o uptime, questo serve sia per capire l’utilizzo attuale delle risorse al momento del test, sia per capire le risorse utilizzate dal test stesso.
  • Si crea una pagina statica (html puro) e una dinamica se necessaria (php), la stessa pagina dovrà essere resa disponibile dai vari server o sulle varie macchine che andremo a testare.
  • Testare da una macchina remota utilizzando ab con la sintassi che segue

    # ab -n 2000 -c 3 http://ip.del.server.web/test.html

    con -n 2000 che rappresenta il numero di richieste che verranno effettuate e -c 3 il numero di richieste concorrenti (variare da -2 a -5 è un buon compromesso)

  • Comparare il risultato.

Esempio di risultato:

Server Software:        Apache/1.3.41
Server Hostname:        www.ipdelserver.xxx
Server Port:            80

Document Path:          /index.php
Document Length:        1019 bytes

Concurrency Level:      3
Time taken for tests:   35.196173 seconds
Complete requests:      2000
Failed requests:        0
Write errors:           0
Total transferred:      2522000 bytes
HTML transferred:       2038000 bytes
Requests per second:    56.82 [#/sec] (mean)
Time per request:       52.794 [ms] (mean)
Time per request:       17.598 [ms] (mean, across all concurrent requests)
Transfer rate:          69.95 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       17   19  67.1     18    3017
Processing:    19   32 146.5     21    3040
Waiting:       19   27 134.1     20    3022
Total:         37   52 161.0     39    3058

Percentage of the requests served within a certain time (ms)
  50%     39
  66%     40
  75%     41
  80%     42
  90%     46
  95%     50
  98%     62
  99%     84
 100%   3058 (longest request)

Dalla pagina di manuale man ab è possibile vedere tutte le altre opzioni dell’applicazione, ad esempio -k attiva il KeepAlive per il test, oppure -g scrive il risultato in un file facilmente importabile da programmi come gnuplot.





0