GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo instalar Apache Bench en RHEL 8

Apache Bench es una pequeña herramienta útil para probar el tiempo de respuesta de un servicio web y, por lo tanto, el rendimiento del servidor web. Podemos especificar la cantidad de solicitudes a enviar, la URL de destino, configurar la concurrencia, solo por nombrar algunas de las configuraciones de esta herramienta.

Si bien tales cargas de trabajo simuladas no darán como resultado exactamente los mismos datos que generará el tráfico del mundo real, siempre es una buena idea probar antes de pasar a producción. Tal vez antes de implementar una nueva versión de la aplicación, podríamos ejecutar las pruebas en la nueva versión y comparar los resultados con los datos de prueba anteriores para ver si nuestra aplicación funcionará más lento o más rápido que la última versión. Con pruebas bien planificadas, esta herramienta puede mostrar los posibles cuellos de botella de la aplicación y puede proporcionar puntos de interés en los que deberíamos buscar en nuestro código para una posible optimización.

En este tutorial, instalaremos Apache Bench en Red Hat Enterprise Linux 8, así como un servidor web Apache para ejecutar algunas pruebas.

En este tutorial aprenderás:

  • Cómo instalar Apache Bench
  • Cómo instalar el servidor web httpd y agregar contenido básico
  • Cómo ejecutar pruebas simples contra el servidor web

Ejecución de pruebas de rendimiento contra el servidor web local con Apache Bench.

Requisitos de software y convenciones utilizadas

Cómo instalar Apache Bench en Redhat 8 instrucciones paso a paso

Apache Bench está disponible en las fuentes de software base después de habilitar los repositorios de administración de suscripciones junto con Apache httpd Servidor web. Para probar nuestra herramienta, agregaremos contenido básico al servidor web, tanto estático como escrito en php .

  1. Para instalar Apache Bench, que se encuentra en las httpd-tools paquete, usaremos dnf :
    # dnf install httpd-tools
  2. Para crear un entorno de prueba usaremos nuestro ab herramienta activada, instalaremos un servidor web con soporte php:
    # dnf install httpd php
  3. Agregaremos una página HTML estática /var/www/html/index.html con el siguiente contenido:
    <html>
    <head>
    <title>Title of the webpage</title>
    </head>
    <body>
    <p>This is a simple html page.</p>
    </body>
    </html>

    Y otra página que da como resultado el mismo contenido, pero está escrita en php de manera intencionalmente derrochadora. El archivo será /var/www/html/index.php , con el siguiente contenido:

    <?php
    echo "<html>\n";
    echo "<head>\n";
    echo "<title>Title of the webpage</title>\n";
    echo "</head>\n";
    echo "<body>\n";
    echo "<p>This is a simple html page.</p>\n";
    echo "</body>\n";
    echo "</html>\n";
    ?>

    Tenga en cuenta que como servimos texto estático, solo necesitaríamos un echo , o sin php en absoluto. Solo creamos esta página para ver la diferencia en los tiempos de respuesta.

  4. Podemos iniciar nuestro servidor web:
    # systemctl start httpd
  5. No necesitamos root privilegios para la evaluación comparativa. Para la primera prueba, ejecutaremos ab contra la página estática index.html , proporcionando 100000 solicitudes (-n) para la página en 10 subprocesos simultáneos (-c), dentro del plazo máximo de 60 segundos (-t). En la máquina de laboratorio, esta cantidad de solicitudes se atenderá en un minuto, pero dependiendo del hardware, esto puede no ser suficiente. También tenga en cuenta que eliminamos el tráfico de red real mediante la evaluación comparativa de localhost, y empujamos la carga de ejecutar las solicitudes y atenderlas en el mismo hardware.
    $ ab -t 60 -n 100000 -c 10 http://localhost/index.html
    This is ApacheBench, Version 2.3 <$Revision: 1826891
    
    
    
    
    
    

    gt;
    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 10000 requests
    Completed 20000 requests
    Completed 30000 requests
    Completed 40000 requests
    Completed 50000 requests
    Completed 60000 requests
    Completed 70000 requests
    Completed 80000 requests
    Completed 90000 requests
    Completed 100000 requests
    Finished 100000 requests

    Server Software: Apache/2.4.35
    Server Hostname: localhost
    Server Port: 80

    Document Path: /index.html
    Document Length: 116 bytes

    Concurrency Level: 10
    Time taken for tests: 19.556 seconds
    Complete requests: 100000
    Failed requests: 0
    Total transferred: 39600000 bytes
    HTML transferred: 11600000 bytes
    Requests per second: 5113.63 [#/sec] (mean)
    Time per request: 1.956 [ms] (mean)
    Time per request: 0.196 [ms] (mean, across all concurrent requests)
    Transfer rate: 1977.53 [Kbytes/sec] received

    Connection Times (ms)
    min mean[+/-sd] median max
    Connect: 0 0 0.2 0 3
    Processing: 0 2 0.8 2 26
    Waiting: 0 1 0.7 1 26
    Total: 0 2 0.8 2 26

    Percentage of the requests served within a certain time (ms)
    50% 2
    66% 2
    75% 2
    80% 2
    90% 3
    95% 3
    98% 4
    99% 5
    100% 26 (longest request)

  6. La segunda prueba se ejecutará con el mismo conjunto de parámetros, pero contra la página php derrochadora index.php .
    $ ab -t 60 -n 100000 -c 10 http://localhost/index.php  
    This is ApacheBench, Version 2.3 <$Revision: 1826891
    
    
    
    
    

    gt;
    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 10000 requests
    Completed 20000 requests
    Completed 30000 requests
    Completed 40000 requests
    Completed 50000 requests
    Completed 60000 requests
    Completed 70000 requests
    Completed 80000 requests
    Completed 90000 requests
    Completed 100000 requests
    Finished 100000 requests

    Server Software: Apache/2.4.35
    Server Hostname: localhost
    Server Port: 80

    Document Path: /index2.php
    Document Length: 116 bytes

    Concurrency Level: 10
    Time taken for tests: 35.064 seconds
    Complete requests: 100000
    Failed requests: 0
    Total transferred: 30700000 bytes
    HTML transferred: 11600000 bytes
    Requests per second: 2851.89 [#/sec] (mean)
    Time per request: 3.506 [ms] (mean)
    Time per request: 0.351 [ms] (mean, across all concurrent requests)
    Transfer rate: 855.01 [Kbytes/sec] received

    Connection Times (ms)
    min mean[+/-sd] median max
    Connect: 0 0 0.2 0 3
    Processing: 1 3 1.2 3 27
    Waiting: 0 3 1.2 3 27
    Total: 1 3 1.3 3 28

    Percentage of the requests served within a certain time (ms)
    50% 3
    66% 4
    75% 4
    80% 4
    90% 5
    95% 6
    98% 7
    99% 7
    100% 28 (longest request)
    It isn't a big surprise what the results show. The static content is served much faster than the wasteful page that also need to go trough the php interpreter. And with this we have shown in a simple example how the Apache Bench tool can be used to gather statistics on the response time of our webservices.


Linux
  1. Cómo instalar apache tomcat en Linux RHEL 8 / CentOS 8

  2. Cómo instalar Apache en RHEL 8 / CentOS 8 Linux

  3. Cómo instalar chispa en RHEL 8

  4. Cómo instalar Apache Maven CentOS 7 / RHEL 7

  5. ¿Cómo instalar Apache en Ubuntu?

Cómo instalar Apache Maven CentOS 8 / RHEL 8

Cómo instalar Apache con Let's Encrypt en RHEL 8

Cómo instalar Apache Solr 8.9 en CentOS/RHEL 8

Cómo instalar Apache Solr en CentOS y RHEL 8

Cómo instalar Apache Kafka en CentOS/RHEL 7

Cómo instalar Apache en Ubuntu 20.04

    Requisitos de software y convenciones de la línea de comandos de Linux
    Categoría Requisitos, convenciones o versión de software utilizada
    Sistema Red Hat Enterprise Linux 8
    Software Apache Bench 2.3
    Otro Acceso privilegiado a su sistema Linux como root o a través de sudo comando.
    Convenciones # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando
    $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios