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.
Pour installer Apache Bench, qui se trouve dans le paquet
httpd-tools, nous allons utiliserdnf:dnf install httpd-toolsPour 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 phpNous allons ajouter une page HTML statique
/var/www/html/index.htmlavec 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"; ?>Nous pouvons démarrer notre serveur web :
systemctl start httpdNous n’avons pas besoin de privilèges
rootpour l’analyse comparative. Pour le premier test, nous allons exécuterabsur la page statiqueindex.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: 1826891Pourcentage de demandes traitées dans un certain délai (ms)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 demandesLogiciel serveur : Apache/2.4.35
Nom d’hôte : localhost
Port du serveur : 80Chemin d’accès au document : /index.html
Longueur du document : 116 octetsNiveau 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çusTemps 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 26Le 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: 1826891gt ;
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 demandesLogiciel serveur : Apache/2.4.35
Serveur Nom d’hôte : localhost
Port du serveur : 80Chemin d’accès au document : /index2.php
Longueur du document : 116 octetsNiveau 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çusTemps 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 28Pourcentage de demandes traitées dans un certain délai (ms)
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.
50 % 2
66 % 2
75 % 2
80 % 2
90 % 3
95 % 3
98 % 4
99 % 5
100 % 26 (demande la plus longue)
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.
