Si usted es un webmaster, es posible que a menudo le preocupe el rendimiento de sus aplicaciones web. Puede hacer preguntas como "¿cómo realizo una prueba de carga de mi aplicación?" o "¿podrá mi aplicación manejar una gran cantidad de usuarios?" En estos casos, Apache Bench puede ser de gran ayuda. Apache Bench es una herramienta gratuita y de código abierto para medir el rendimiento de un servidor web con una interfaz de línea de comandos simple y fácil de usar; puede ayudarlo a comprender cómo funciona su instalación actual de Apache.
En este tutorial, le mostraremos cómo instalar y usar Apache Bench en Linux.
Requisitos
- Un Ubuntu 18.04 VPS nuevo en Atlantic.Net Cloud Platform.
- Se ha configurado una contraseña raíz en su servidor.
Paso 1:crear el servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Ubuntu 18.04 como sistema operativo con al menos 1 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Una vez que haya iniciado sesión en su servidor Ubuntu 18.04, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.
apt-get update -y
Paso 2:instalar Apache Bench
Apache Bench es parte del paquete del servidor web Apache, por lo que no necesita instalar Apache Bench si el servidor web Apache está instalado en su sistema.
Para el sistema operativo Ubuntu/Debian, instale la herramienta Apache Bench con el siguiente comando:
apt-get install apache2-utils -y
Para el sistema operativo RHEL/CentOS, instale la herramienta Apache Bench con el siguiente comando:
yum install httpd-tools -y
Puede mostrar todas las opciones disponibles con la herramienta Apache Bench usando el siguiente comando:
ab
Debería ver la siguiente pantalla:
A continuación se muestra una breve explicación de las opciones más utilizadas:
- -n: Especifique el número de solicitudes de conexión enviadas al servidor web.
- -c: Especifique el número de solicitudes de conexión simultáneas enviadas al servidor web.
- -t: Especifique la cantidad de segundos que el comando ab debe continuar enviando solicitudes.
Paso 3:ejecución de una prueba de estrés
En este punto, la herramienta Apache Bench está instalada. Ahora, puede realizar una prueba de estrés contra su servidor web localmente o usando el nombre de dominio.
Realicemos una prueba de esfuerzo contra su servidor web Apache enviando 800 solicitudes a través de 300 conexiones simultáneas.
ab -n 800 -c 300 http://your-domain-name/
Esto funcionará para 800 solicitudes con una simultaneidad de 300 como se muestra a continuación:
This is ApacheBench, Version 2.3 <$Revision: 1807734 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Finished 800 requests Server Software: Apache/2.4.29 Server Hostname: localhost Server Port: 80 Document Path: / Document Length: 10918 bytes Concurrency Level: 300 Time taken for tests: 0.459 seconds Complete requests: 800 Failed requests: 0 Total transferred: 8953600 bytes HTML transferred: 8734400 bytes Requests per second: 1743.53 [#/sec] (mean) Time per request: 172.064 [ms] (mean) Time per request: 0.574 [ms] (mean, across all concurrent requests) Transfer rate: 19056.29 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 6 7.8 0 20 Processing: 8 92 124.3 44 437 Waiting: 4 92 124.4 43 437 Total: 22 98 128.9 44 453 Percentage of the requests served within a certain time (ms) 50% 44 66% 50 75% 53 80% 56 90% 435 95% 445 98% 450 99% 452 100% 453 (longest request)
En el resultado anterior, puede ver que Apache manejó 1743,53 solicitudes por segundo y tardó un total de 0,459 segundos en atender el total de solicitudes.
Realicemos otra prueba de estrés en su servidor web Nginx y compárelo con el resultado de Apache enviando 800 solicitudes en 300 conexiones simultáneas.
ab -n 800 -c 300 http://your-domain-name/
Debería ver el siguiente resultado:
This is ApacheBench, Version 2.3 <$Revision: 1807734 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Finished 800 requests Server Software: nginx/1.14.0 Server Hostname: localhost Server Port: 80 Document Path: / Document Length: 10918 bytes Concurrency Level: 300 Time taken for tests: 0.184 seconds Complete requests: 800 Failed requests: 0 Total transferred: 8930400 bytes HTML transferred: 8734400 bytes Requests per second: 4354.95 [#/sec] (mean) Time per request: 68.887 [ms] (mean) Time per request: 0.230 [ms] (mean, across all concurrent requests) Transfer rate: 47474.91 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 1 12 7.5 9 32 Processing: 5 33 12.8 30 56 Waiting: 4 26 12.9 22 49 Total: 15 46 13.6 46 70 Percentage of the requests served within a certain time (ms) 50% 46 66% 56 75% 58 80% 60 90% 64 95% 66 98% 70 99% 70 100% 70 (longest request)
En el resultado anterior, puede ver que Apache manejó 4354,95 solicitudes por segundo y tardó un total de 0,184 segundos en atender el total de solicitudes.
Puede ver que Nginx puede manejar más solicitudes que Apache. Después de comparar el resultado de ambos servidores, tendrás una idea de cuál elegir para tu aplicación web.
Conclusión
En la guía anterior, aprendimos cómo probar el rendimiento del servidor web con Apache Bench. Ahora puede explorar la herramienta Apache Bench y ejecutarla con diferentes opciones para medir el rendimiento de su servidor web; ¡Pruébelo hoy en VPS Hosting de Atlantic.Net!