GNU/Linux >> Tutoriels Linux >  >> Linux

Comment évaluer les performances d'un serveur Web avec Apache Bench

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 !


Linux
  1. Comment configurer un serveur Web Apache

  2. Comment configurer plusieurs sites Web avec le serveur Web Apache

  3. Comment installer le serveur Web Apache sur CentOS 7

  4. Comment installer Apache Web Server sur Centos 8

  5. Comment installer le serveur Web Apache sur Ubuntu

Comment configurer WordPress multisite avec Apache Web Server sur Ubuntu

Comment installer le serveur Web Apache sur Debian 11

Comment installer le serveur Web Apache sur Ubuntu 18.04

Comment optimiser le serveur Web Apache ?

Comment installer Drupal sur un serveur Ubuntu 20.04 avec Apache

Comment configurer l'authentification par mot de passe avec Apache sur Ubuntu 18.04