O ab (Apache HTTP server benchmarking tool), é uma ferramenta para benchmarking de servidores web da apache (HTTP). Com essa ferramenta possibilita medir o desempenho de sua versão atual do servidor, mostra especialmente quantas requisições por segundo o servidor é capaz de responder.
Para instalar o ab, utilize a seguinte linha de comando:
sudo apt-get install apache2-utils
Um exemplo de utilização:
sudo ab -n 1000 -c 10 -X 192.168.1.114:3128 -e result.csv http://localhost:8080/minhaAplicacao/index.jsp
Segue abaixo a descrição dos parâmetros utilizados no teste:
Parâmetros utilizados:
-n : número de requisições do teste
-c : concorrência, representa o número de usuários simultâneos por requisição
-X : endereço IP do servidor proxy (só utilize esse opção se usar um proxy)
-e : escreve um arquivo .CSV (valores separados por vírgula) contendo a cada porcentagem (1%-100%) o tempo gasto pelo servidor para responder as requisições
Resultado da execução do teste:
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost [through 192.168.1.114:3128] (be patient)
Completed 100 requests
Completed 200 requests
...
Completed 900 requests
Finished 1000 requests
Server Software: squid/2.6.STABLE16
Server Hostname: localhost
Server Port: 8080
Document Path: /minhaAplicacao/index.jsp
Document Length: 1087 bytes
Concurrency Level: 10
Time taken for tests: 10.509680 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Non-2xx responses: 1000
Total transferred: 1503000 bytes
HTML transferred: 1087000 bytes
Requests per second: 95.15 [#/sec] (mean)
Time per request: 105.097 [ms] (mean)
Time per request: 10.510 [ms] (mean, across all concurrent requests)
Transfer rate: 139.59 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.3 0 1
Processing: 101 103 1.6 104 110
Waiting: 101 103 1.4 104 109
Total: 101 103 1.7 104 110
Percentage of the requests served within a certain time (ms)
50% 104
66% 105
75% 105
80% 105
90% 105
95% 106
98% 106
99% 106
100% 110 (longest request)
Nesse teste, fiz 1000 requisições com 10 usuários acessando a página simultaneamente por requisição, obtive um tempo médio por requisição de 105ms e verifiquei também que meu servidor (Tomcat 5.5) conseguiu responder em média 95.15 requisições/segundo.
Essa ferramenta é simples de ser utilizada, pode ser usada para medir desempenho de servidores HTTP.
Referência:
http://httpd.apache.org/docs/2.0/programs/ab.html