Por favor, llévame a través de los comandos que debo ejecutar para resolver esto.
La prueba más simple que puede hacer es realizar 1000 solicitudes, 10 a la vez (que simula aproximadamente 10 usuarios concurrentes que obtienen 100 páginas cada uno, a lo largo de la prueba).
ab -n 1000 -c 10 -k -H "Accept-Encoding: gzip, deflate" http://www.example.com/
-n 1000
es la cantidad de solicitudes a realizar.
-c 10
le dice a AB que haga 10 solicitudes a la vez, en lugar de 1 solicitud a la vez, para simular mejor los visitantes concurrentes (frente a los visitantes secuenciales).
-k
envía el KeepAlive
encabezado, que le pide al servidor web que no apague la conexión después de realizar cada solicitud, sino que en cambio la reutilice.
También envío el encabezado adicional Accept-Encoding: gzip, deflate
porque mod_deflate casi siempre se usa para comprimir la salida de texto / html 25% -75%, cuyos efectos no deben descartarse debido a su impacto en el rendimiento general del servidor web (es decir, puede transferir 2 veces los datos en la misma cantidad de tiempo, 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 la interpretación más simple, ignore todo PERO esta línea:
Requests per second: 704.23 [#/sec] (mean)
Multiplique eso por 60 y tendrá sus solicitudes por minuto.
Para obtener resultados del mundo real, querrá probar Wordpress en lugar de algún archivo HTML estático o index.php porque necesita saber cómo funciona todo junto: incluyendo código PHP complejo y múltiples consultas MySQL ...
Por ejemplo, aquí están los resultados de probar una nueva instalación de Wordpress en el mismo sistema y entorno WAMP (estoy usando WampDeveloper, pero también hay Xampp, WampServer y otros) ...
Requests per second: 18.68 [#/sec] (mean)
¡Eso es 37 veces más lento ahora!
Después de la prueba de carga, hay varias cosas que puede hacer para mejorar el rendimiento general (Solicitudes por segundo) y también hacer que el servidor web sea más estable bajo una carga mayor (por ejemplo, aumentar -n
y -c
tiende a fallar Apache), que puedes leer aquí:
Prueba de carga Apache con AB (Apache Bench)