AB est l’abréviation d’ApacheBench.
La commande ab crée plusieurs fils d’accès simultanés pour simuler plusieurs visiteurs accédant simultanément à une adresse URL. Ses cibles de test sont basées sur des URL, ce qui permet de tester à la fois le stress de charge Apache et d’autres contraintes de serveur web telles que nginx, lighthttp, tomcat, IIS, etc.
La commande ab a peu d’exigences pour l’ordinateur qui émet la charge, et elle ne prend pas beaucoup de CPU ou de mémoire. Cependant, cela provoque une charge énorme sur le serveur cible, et son principe est similaire aux attaques CC. Il faut aussi faire attention aux tests et à l’utilisation vous-même, sinon vous aurez trop de charge en même temps. Cela peut entraîner une manque de ressources pour le serveur cible, et dans les cas graves, même provoquer un plantage.
1. Introduction à l’Apache Bench
ApacheBench est un outil de test de stress web fourni avec les serveurs Apache, abrégé en ab. AB est également un outil en ligne de commande avec de faibles exigences natives pour initier les charges utiles, et de nombreux threads d’accès simultanés peuvent être créés selon la commande AB, simulant plusieurs visiteurs accédant simultanément à une certaine adresse URL, afin de pouvoir tester la pression de charge du serveur cible. En général, l’outil AB est petit et simple, rapide à apprendre et peut fournir les indicateurs de performance de base dont vous avez besoin, mais il n’y a pas de résultats graphiques et ne peut pas être surveillé.
2. Installation de l’établi Apache
Tout d’abord, vous devez installer le serveur Apache, télécharger l’adresse :La connexion hyperlientérée est visible.,
Mon ordinateur est un système Win10 64 bits, donc j’ai téléchargé « httpd-2.4.33-win64-VC15.zip », lien :La connexion hyperlientérée est visible.
Il est recommandé de télécharger la dernière version, car les anciennes versions de ab ne prennent pas en charge le paramètre -r.
3. Utilisation sur le banc Apache
Comprendre les paramètres
Description des paramètres : Format : ab [options] [http://]nom d’hôte[:p ort]/path
-n requêtes Nombre de requêtes à effectuer // Le nombre total de requêtes initiées dans ce test -c concurrence Nombre de multiples requêtes à effectuer // Nombre de requêtes (ou concurrents) générées simultanément -Limite de temps : Secondes au maximum. Attendre les réponses // Le nombre maximal de secondes qu’un test est effectué par défaut. -r Ne pas sortir sur la prise d’erreurs. Lancer une exception pour poursuivre la tâche de test -p posfile Fichier contenant des données vers POST // Un fichier contenant des données qui doivent être POST, dans un format de fichier tel que « p1=1&p2=2 ». La méthode d’utilisation est -p 111.txt
-T content-type En-tête de type contenu pour POSTing L’en-tête de type Contenu utilisé pour les données POST, comme -T « application/x-www-form-urlencoded ». (co-p) -v verbosité Combien d’informations de dépannage à imprimer Définissez le niveau de détail pour afficher les informations – une valeur de 4 ou plus affichera les informations de l’en-tête, une valeur de 3 ou plus indiquera un code de réponse (404, 200, etc.), et une valeur de 2 ou plus affichera des avertissements et d’autres informations. -V affiche le numéro de version et quitte. -C attribut Ajouter un cookie, par exemple -C « c1=1234,c2=2,c3=3 » (répétable) -C cookie-name=value Ajouter un cookie à la ligne request :. La forme typique est une paire de paramètres nom=valeur. Ce paramètre peut être répété, divisé par une virgule. Conseil : Vous pouvez utiliser le principe d’implémentation de session pour passer le paramètre JSESSIONID afin d’atteindre la fonction de maintien de la session, par exemple -C « c1=1234, c2=2, c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8 ». -w Imprimer les résultats dans des tableaux HTML // Résultats de sortie au format de tableau HTML. Par défaut, il s’agit d’un tableau de deux colonnes sur fond blanc. -J’utilise TÊTE au lieu de GET -x attributs Chaîne à insérer comme attributs de table -y attributs Chaîne à insérer comme attributs tr -z attributs String to insert comme attributs td ou th -H attribut Ajouter Ligne d’en-tête arbitraire, par exemple « Accept-Encoding : gzip » Inséré après toutes les lignes d’en-tête normales. (répétable) -Un attribut Ajouter Authentification WWW de base, les attributs sont des noms d’utilisateur et mots de passe séparés par deux-points. -P attribut Ajouter Authentication Proxy de base, les attributs sont séparés par un deux-points du nom d’utilisateur et du mot de passe. -X proxi :port Proxy serveur et numéro de port à utiliser -V Imprimer numéro de version et sortie -k Utiliser la fonctionnalité HTTP KeepAlive -d Ne pas montrer les percentiles sur table. -S : Ne montrez pas d’estimateurs de confiance ni d’avertissements. -g Fichier Sortie les données collectées dans un fichier au format gnuplet. -e Fichier fichier Sortie du fichier CSV avec les pourcentages servis -h Afficher les informations d’utilisation (ce message) Il existe de nombreux paramètres, généralement on peut utiliser des paramètres -c et -n. Par exemple :
Décompressez le « httpd-2.4.33-win64-VC15.zip », allez dans \Apache24\bin, et lancez-le avec la ligne de commande cmd, comme montré dans la figure ci-dessous :
SSL non compilé dans ; pas de prise en charge du https : SSL n’est pas compilé dans ; Il n’y a pas de support https, ce qui signifie que le site ne prend pas en charge https.
Résultats des tests :
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 https://www.itsvse.com SSL non compilé dans ; Pas de support HTTPS
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 http://www.itsvse.com/ Voici ApacheBench, version 2.3 <$Revision : 1826891 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd,La connexion hyperlientérée est visible. Sous licence à la Fondation Apache Software,La connexion hyperlientérée est visible.
Benchmarkingwww.itsvse.com(sois patient) 100 demandes accomplies 200 demandes accomplies 300 demandes complétées 400 demandes complétées 500 demandes accomplies 600 demandes complétées 700 demandes accomplies 800 demandes accomplies 900 demandes accomplies 1000 demandes accomplies A terminé 1000 demandes
Logiciels serveur : Nom d’hôte du serveur : www.itsvse.com Port serveur : 80
Chemin du document : / Longueur du document : 178 octets
Niveau de concurrence : 10 Temps pris pour les tests : 44,916 secondes Demandes complètes : 1000 Demandes échouées : 0 Réponses non-2xx : 1000 Total transféré : 349000 octets HTML transféré : 178000 octets Requêtes par seconde : 22,26 [#/sec] (moyenne) Temps par demande : 449,164 [ms] (moyenne) Temps par requête : 44,916 [ms] (moyenne, sur toutes les requêtes concurrentes) Taux de transfert : 7,59 [Kbytes/s] reçus
Temps de connexion (ms) Moyenne minimale[+/-sd] Médian max
Connect: 32 45 60.1 37 1439
Processing: 35 401 185.6 356 1795
Waiting: 34 245 199.6 228 1791
Total: 69 446 195.4 397 1830
Pourcentage des demandes traitées dans un certain délai (ms) 50% 397 66% 415 75% 439 80% 461 90% 535 95% 623 98% 1563 99% 1784 100 % 1830 (la demande la plus longue) Analyse des paramètres :
Chemin du document : Page de test Longueur du document : La taille de la page Niveau de concurrence : nombre de concurrents testés simultanément Temps pris pour les tests : la durée totale du test Demandes complètes : Le nombre de demandes terminées Requêtes échouées : nombre de demandes échouées Erreurs d’écriture : 0 Total transféré : la quantité de réseau transférée tout au long du processus HTML transféré : La quantité de contenu HTML transférée tout au long du processus Requêtes par seconde : L’un des indicateurs les plus importants, équivalent aux transactions par seconde en LR et la moyenne entre parenthèses, indique qu’il s’agit d’une moyenne Temps par requête : Les deux métriques les plus importantes, équivalentes au temps moyen de réponse des transactions en LR, la moyenne entre parenthèses indiquent qu’il s’agit d’une moyenne Temps par requête : La moyenne du temps d’exécution réel pour chaque requête de connexion Débit de transfert : trafic moyen par seconde sur le réseau, ce qui peut aider à éliminer le problème d’un trafic réseau excessif provoquant de longs temps de réponse
|