Si vous êtes un webmaster, vous êtes souvent préoccupé par les performances de vos applications Web. Vous pourriez poser des questions telles que "comment puis-je effectuer des tests de charge de mon application ?" ou "mon application pourra-t-elle gérer un grand nombre d'utilisateurs ?" Dans ces cas, Apache Bench peut être d'une grande aide. Apache Bench est un outil gratuit et open source permettant de mesurer les performances d'un serveur Web avec une interface de ligne de commande simple et facile à utiliser. cela peut vous aider à comprendre comment fonctionne votre installation actuelle d'Apache.
Dans ce tutoriel, nous allons vous montrer comment installer et utiliser Apache Bench sous Linux.
Prérequis
- Un nouveau VPS Ubuntu 18.04 sur la plate-forme cloud Atlantic.Net.
- Un mot de passe root est configuré sur votre serveur.
Étape 1 – Créer un serveur cloud Atlantic.Net
Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant Ubuntu 18.04 comme système d'exploitation avec au moins 1 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.
Une fois connecté à votre serveur Ubuntu 18.04, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.
apt-get update -y
Étape 2 – Installer Apache Bench
Apache Bench fait partie du package du serveur Web Apache, vous n'avez donc pas besoin d'installer Apache Bench si le serveur Web Apache est installé sur votre système.
Pour le système d'exploitation Ubuntu/Debian, installez l'outil Apache Bench avec la commande suivante :
apt-get install apache2-utils -y
Pour le système d'exploitation RHEL/CentOS, installez l'outil Apache Bench avec la commande suivante :
yum install httpd-tools -y
Vous pouvez afficher toutes les options disponibles avec l'outil Apache Bench à l'aide de la commande suivante :
ab
Vous devriez voir l'écran suivant :
Une brève explication des options les plus couramment utilisées est présentée ci-dessous :
- -n : Spécifiez le nombre de demandes de connexion envoyées au serveur Web.
- -c : Spécifiez le nombre de demandes de connexion simultanées envoyées au serveur Web.
- -t : Spécifiez le nombre de secondes pendant lesquelles la commande ab doit continuer à envoyer des requêtes.
Remarque : Parfois, vous pouvez obtenir une erreur « connexion expirée ». La raison en est que votre demande de connexion a été bloquée par un pare-feu ou que le serveur Web Apache n'a pas été en mesure de traiter d'autres demandes.
Étape 3 – Exécution d'un test d'effort
À ce stade, l'outil Apache Bench est installé. Maintenant, vous pouvez effectuer un test de résistance sur votre serveur Web localement ou en utilisant le nom de domaine.
Effectuons un test de résistance sur votre serveur Web Apache en envoyant 800 requêtes sur 300 connexions simultanées.
ab -n 800 -c 300 http://your-domain-name/
Cela fonctionnera pour 800 requêtes avec une simultanéité de 300, comme indiqué ci-dessous :
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)
Dans la sortie ci-dessus, vous pouvez voir qu'Apache a traité 1 743,53 requêtes par seconde, et qu'il a fallu au total 0,459 seconde pour traiter le nombre total de requêtes.
Effectuons un autre test de résistance sur votre serveur Web Nginx et comparons-le au résultat d'Apache en envoyant 800 requêtes sur 300 connexions simultanées.
ab -n 800 -c 300 http://your-domain-name/
Vous devriez voir le résultat suivant :
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)
Dans la sortie ci-dessus, vous pouvez voir qu'Apache a traité 4 354,95 requêtes par seconde et qu'il a fallu au total 0,184 seconde pour répondre au total des requêtes.
Vous pouvez voir que Nginx peut gérer plus de requêtes qu'Apache. Après avoir comparé le résultat des deux serveurs, vous aurez une idée de celui à choisir pour votre application Web.
Conclusion
Dans le guide ci-dessus, nous avons appris à tester les performances du serveur Web avec Apache Bench. Vous pouvez maintenant explorer l'outil Apache Bench et l'exécuter avec différentes options pour mesurer les performances de votre serveur Web ; essayez-le aujourd'hui sur l'hébergement VPS d'Atlantic.Net !