Recherche de site Web

Comment installer le banc apache sur RHEL 8


Apache Bench est un petit outil utile pour tester le temps de réponse d’un service web, et donc les performances du serveur web. Nous pouvons spécifier le nombre de requêtes à envoyer, l’URL cible, configurer la concurrence, pour ne citer que quelques-uns des paramètres de cet outil.

Bien que ces charges de travail simulées ne produisent pas exactement les mêmes données que le trafic réel, il est toujours judicieux de tester avant de passer en production. Peut-être qu’avant de déployer une nouvelle version de l’application, nous pourrions exécuter les tests sur la nouvelle version et comparer les résultats avec les données de test précédentes pour voir si notre application fonctionnera plus lentement ou plus rapidement que la dernière version. Avec des tests bien planifiés, cet outil peut montrer les goulots d’étranglement possibles de l’application, et peut fournir des points d’intérêt où nous devrions examiner notre code pour une éventuelle optimisation.

Dans ce tutoriel, nous allons installer Apache Bench sur Red Hat Enterprise Linux 8, ainsi qu’un serveur Web Apache pour effectuer des tests.

Dans ce tutoriel, vous allez apprendre :

  • Comment installer Apache Bench
  • Comment installer le serveur web httpd et ajouter du contenu de base
  • Comment exécuter des tests simples sur le serveur web

Exécution de tests de performance sur un serveur web local avec Apache Bench.

Configuration logicielle requise et conventions utilisées

Comment installer un banc Apache sur Redhat 8 : instructions étape par étape

Apache Bench est disponible dans les sources logicielles de base après l’activation des référentiels de gestion des abonnements avec le serveur web Apache httpd. Pour essayer notre outil, nous allons ajouter du contenu de base au serveur web, à la fois statique et écrit en php.

  1. Pour installer Apache Bench, qui se trouve dans le paquet httpd-tools, nous allons utiliser dnf :

    dnf install httpd-tools
  2. Pour créer un environnement de test sur lequel nous utiliserons notre outil ab, nous installerons un serveur web avec le support php :

    dnf install httpd php
  3. Nous allons ajouter une page HTML statique /var/www/html/index.html avec le contenu suivant :

    <html>
    <head>
    <title>Title of the webpage</title>
    </head>
    <body>
    <p>This is a simple html page.</p>
    </body>
    </html>

    Et une autre page qui aboutit au même contenu, mais qui est écrite en php de manière intentionnellement inutile. Le fichier sera /var/www/html/index.php, avec le contenu ci-dessous :

    <?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";
    ?>
  4. Notez que comme nous servons du texte statique, nous n’aurions besoin que d’un seul écho, ou pas de php du tout. Nous créons cette page uniquement pour voir la différence dans les temps de réponse.

  5. Nous pouvons démarrer notre serveur web :

    systemctl start httpd
  6. Nous n’avons pas besoin de privilèges root pour l’analyse comparative. Pour le premier test, nous allons exécuter ab sur la page statique index.html, en fournissant 100000 requêtes (-n) pour la page en 10 threads simultanés (-c), dans le délai maximum de 60 secondes (-t). Sur la machine de laboratoire, ce nombre de requêtes sera traité en une minute, mais selon le matériel, cela peut ne pas être suffisant. Notez également que nous avons éliminé le véritable trafic réseau en effectuant un benchmarking à partir de localhost, et nous poussons la charge de l’exécution des requêtes et de leur diffusion sur le même matériel.

    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/
    Sous licence à l’Apache Software Foundation, http://www.apache.org/

    Benchmarking localhost (soyez patient)
    Terminé 10000 demandes
    Terminé 20000 demandes
    Terminé 30000 demandes
    Terminé 40000 demandes
    Terminé 50000 demandes
    Terminé 60000 demandes
    Terminé 70000 demandes
    Terminé 80000 demandes
    Terminé 90000 demandes
    Terminé 100000 demandes
    Terminé 100000 demandes

    Logiciel serveur : Apache/2.4.35
    Nom d’hôte : localhost
    Port du serveur : 80

    Chemin d’accès au document : /index.html
    Longueur du document : 116 octets

    Niveau de simultanéité : 10
    Temps nécessaire pour les tests : 19,556 secondes
    Demandes complètes : 100000
    Demandes ayant échoué : 0
    Total transféré : 39600000 octets
    HTML transféré : 11600000 octets
    Requêtes par seconde : 5113,63 [#/sec] (moyenne)
    Temps par requête : 1,956 [ms] (moyenne)
    Temps par requête : 0,196 [ms] (moyenne, pour toutes les requêtes simultanées)
    Taux de transfert : 1977.53 [Ko/s] reçus

    Temps de connexion (ms)
    min mean[+/-sd] médian max
    Connexion : 0 0 0.2 0 3
    Traitement : 0 2 0.8 2 26
    Attente : 0 1 0.7 1 26
    Total : 0 2 0.8 2 26

    Pourcentage de demandes traitées dans un certain délai (ms)

  7. 50 % 2
    66 % 2
    75 % 2
    80 % 2
    90 % 3
    95 % 3
    98 % 4
    99 % 5
    100 % 26 (demande la plus longue)

  8. Le deuxième test s’exécutera avec le même ensemble de paramètres, mais contre le gaspillage de la page php 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/
    Sous licence à l’Apache Software Foundation, http://www.apache.org/

    Benchmarking localhost (soyez patient)
    Terminé 10000 demandes
    Terminé 20000 demandes
    Terminé 30000 demandes
    Terminé 40000 demandes
    Terminé 50000 demandes
    Terminé 60000 demandes
    Terminé 70000 demandes
    Terminé 80000 demandes
    Terminé 90000 demandes
    Terminé 100000 demandes
    Terminé 100000 demandes

    Logiciel serveur : Apache/2.4.35
    Serveur Nom d’hôte : localhost
    Port du serveur : 80

    Chemin d’accès au document : /index2.php
    Longueur du document : 116 octets

    Niveau de simultanéité : 10
    Temps nécessaire pour les tests : 35,064 secondes
    Demandes complètes : 100000
    Demandes ayant échoué : 0
    Total transféré : 30700000 octets
    HTML transféré : 11600000 octets
    Requêtes par seconde : 2851,89 [#/sec] (moyenne)
    Temps par requête : 3,506 [ms] (moyenne)
    Temps par requête : 0,351 [ms] (moyenne, pour toutes les requêtes simultanées)
    Taux de transfert : 855,01 [Ko/s] reçus

    Temps de connexion (ms)
    min mean[+/-sd] médian max
    Connexion : 0 0 0.2 0 3
    Traitement : 1 3 1.2 3 27
    En attente : 0 3 1.2 3 27
    Total : 1 3 1.3 3 28

    Pourcentage de demandes traitées dans un certain délai (ms)

  9. 50 % 3
    66 % 4
    75 % 4
    80 % 4
    90 % 5
    95 % 6
    98 % 7
    99 % 7
    100 % 28 (demande la plus longue)
    Ce n'est pas une grande surprise ce que les résultats montrent. Le contenu statique est servi beaucoup plus rapidement que la page inutile qui doit également passer par l’interpréteur php. Et avec cela, nous avons montré dans un exemple simple comment l’outil Apache Bench peut être utilisé pour collecter des statistiques sur le temps de réponse de nos webservices.

Articles connexes: