Por favor, me guie pelos comandos que devo executar para descobrir isso.
O teste mais simples que você pode fazer é executar 1000 solicitações, 10 por vez (que simula aproximadamente 10 usuários simultâneos, obtendo 100 páginas cada - ao longo da duração do teste).
ab -n 1000 -c 10 -k -H "Accept-Encoding: gzip, deflate" http://www.example.com/
-n 1000
é o número de solicitações a serem feitas.
-c 10
instrui a AB a fazer 10 solicitações por vez, em vez de 1 solicitação por vez, para simular melhor os visitantes simultâneos (vs. visitantes sequenciais).
-k
envia o KeepAlive
cabeçalho, que solicita ao servidor da Web que não desligue a conexão após a conclusão de cada solicitação, mas continue reutilizando-a.
Também estou enviando o cabeçalho extra Accept-Encoding: gzip, deflate
porque o mod_deflate quase sempre é usado para compactar a saída de texto / html de 25% a 75% - cujos efeitos não devem ser descartados devido ao impacto no desempenho geral do servidor da web (por exemplo, pode transferir 2x os dados na mesma quantidade de tempo, etc).
Resultados:
Benchmarking www.example.com (be patient)
Completed 100 requests
...
Finished 1000 requests
Server Software: Apache/2.4.10
Server Hostname: www.example.com
Server Port: 80
Document Path: /
Document Length: 428 bytes
Concurrency Level: 10
Time taken for tests: 1.420 seconds
Complete requests: 1000
Failed requests: 0
Keep-Alive requests: 995
Total transferred: 723778 bytes
HTML transferred: 428000 bytes
Requests per second: 704.23 [#/sec] (mean)
Time per request: 14.200 [ms] (mean)
Time per request: 1.420 [ms] (mean, across all concurrent requests)
Transfer rate: 497.76 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 1
Processing: 5 14 7.5 12 77
Waiting: 5 14 7.5 12 77
Total: 5 14 7.5 12 77
Percentage of the requests served within a certain time (ms)
50% 12
66% 14
75% 15
80% 16
90% 24
95% 29
98% 36
99% 41
100% 77 (longest request)
Para uma interpretação mais simples, ignore tudo, menos esta linha:
Requests per second: 704.23 [#/sec] (mean)
Multiplique isso por 60 e você terá suas solicitações por minuto.
Para obter resultados do mundo real, convém testar o Wordpress em vez de um arquivo HTML ou index.php estático, porque você precisa saber como tudo funciona juntos: incluindo código PHP complexo e várias consultas MySQL ...
Por exemplo, aqui estão os resultados dos testes de uma nova instalação do Wordpress no mesmo sistema e ambiente WAMP (estou usando o WampDeveloper, mas também existem Xampp, WampServer e outros) ...
Requests per second: 18.68 [#/sec] (mean)
Isso é 37x mais lento agora!
Após o teste de carga, há várias ações que você pode fazer para melhorar o desempenho geral (solicitações por segundo) e também tornar o servidor da Web mais estável sob uma carga maior (por exemplo, aumentando o -n
e as -c
tendências a travar o Apache), que você pode ler aqui:
Teste de carga do Apache com AB (Apache Bench)