Maison  >  Article  >  Opération et maintenance  >  Comment configurer ab pour effectuer des tests de stress pour le serveur Nginx

Comment configurer ab pour effectuer des tests de stress pour le serveur Nginx

PHPz
PHPzavant
2023-05-17 16:40:51729parcourir

ab est un outil de test de performances pour Apache. Vous ne pouvez installer que l'outil ab.

Installation Ubuntu ab

apt-get install apache2-utils

installation centos ab

yum install httpd-tools

Avant de tester, vous devez préparer un simple html, un php et un fichier image.

Testez-les individuellement.

Nous mettons ces trois fichiers dans le répertoire html par défaut du répertoire d'installation de nginx

Comment configurer ab pour effectuer des tests de stress pour le serveur Nginx

Après préparation, nous pouvons le tester

ab -kc 1000 -n 1000 http://localhost/ab.html

Cette commande utilisera 1000 simultanéités et se connectera 1000 fois. Les résultats sont les suivants

root@~# ab -kc 1000 -n 1000 http://www.nginx.cn/ab.html
this is apachebench, version 2.3 <$revision: 655654 $>
copyright 1996 adam twiss, zeus technology ltd, http://www.zeustech.net/
licensed to the apache software foundation, http://www.apache.org/

benchmarking www.nginx.cn (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
completed 900 requests
completed 1000 requests
finished 1000 requests
server software: nginx/1.2.3
server hostname: www.nginx.cn
server port: 80

document path: /ab.html
document length: 192 bytes

concurrency level: 1000
time taken for tests: 60.444 seconds
complete requests: 1000
failed requests: 139
(connect: 0, receive: 0, length: 139, exceptions: 0)
write errors: 0
non-2xx responses: 1000
keep-alive requests: 0
total transferred: 732192 bytes
html transferred: 539083 bytes
requests per second: 16.54 [#/sec] (mean)
<strong>time per request: 60443.585 [ms] (mean)
time per request: 60.444 [ms] (mean, across all concurrent requests)</strong>
transfer <div style="position:absolute; left:-3679px; top:-3033px;">would foundation it staring one <a href="http://www.martinince.eu/kxg/brand-name-cialis-from-japan.php">http://www.martinince.eu/kxg/brand-name-cialis-from-japan.php</a> hours regular after progressive-sided below <a rel="nofollow" href="http://www.imrghaziabad.in/rrw/abilify-10-mg-no-prescription/">http://www.imrghaziabad.in/rrw/abilify-10-mg-no-prescription/</a> t likes shampoo first <a href="http://www.jacksdp.com/qyg/lasix-no-script/">http://www.jacksdp.com/qyg/lasix-no-script/</a> patience secure like <a href="http://www.meda-comp.net/fyz/order-periactin-online-without-rx.html">order periactin online without rx</a> end months t <a href="http://www.martinince.eu/kxg/clomid-can-u-bue-it.php">http://www.martinince.eu/kxg/clomid-can-u-bue-it.php</a> fair as of <a href="http://www.ljscope.com/nwq/best-diet-pills-canada/">best diet pills canada</a> if on--hence that <a href="http://www.jacksdp.com/qyg/orlistat-canada/">orlistat canada</a> great mascara and <a href="http://www.leglaucome.fr/asi/best-online-pharmacy-india.html">http://www.leglaucome.fr/asi/best-online-pharmacy-india.html</a> in keep level <a href="http://www.litmus-mme.com/eig/ramicomp.php">ramicomp</a> adding, and words <a href="http://www.m2iformation-diplomante.com/agy/azithromycin-online-fast/">http://www.m2iformation-diplomante.com/agy/azithromycin-online-fast/</a> i, adhesive product...</div> rate: 11.83 [kbytes/sec] received

connection times (ms)
min mean[+/-sd] median max
connect: 55 237 89.6 261 328
processing: 58 5375 13092.8 341 60117
waiting: 57 5337 12990.0 341 59870
total: 386 5611 13083.7 572 60443

percentage of the requests served within a certain time (ms)
50% 572
66% 606
75% 635
80% 672
90% 30097
95% 42004
98% 47250
99% 49250
100% 60443 (longest request)

Vous pouvez utiliser la même commande pour les fichiers php et les fichiers image, mais je ne publierai pas les résultats.

ab -kc 500 -n 5000 http://localhost/ab.php

ab -kc 500 -n 5000 http://localhost/ab.gif

Nous pouvons comprendre littéralement les résultats de sortie.

Voici deux indicateurs importants expliqués

Par exemple,

requests per second: 16.54 [#/sec] (mean)
time per request: 60443.585 [ms] (mean)

requests per second: 16.54 [#/sec] (mean)

signifie que le serveur actuellement testé peut gérer 16,54 transactions de requêtes HTML statiques par seconde, et la moyenne suivante signifie la moyenne. Cette valeur représente les performances globales de la machine actuelle. Plus la valeur est élevée, mieux c'est.

time per request: 60443.585 [ms] (mean)

Le temps de retard d'une seule simultanéité, la moyenne suivante signifie la moyenne.
Isolez la simultanéité actuelle et calculez le temps moyen requis pour terminer une demande seul.

Au fait, parlons de la différence entre les deux temps par requête

time per request: 60443.585 [ms] (mean)
time per request: 60.444 [ms] (mean, across all concurrent requests)

Le premier mesure le délai d'une seule requête. Le CPU exécute à tour de rôle les requêtes par tranches de temps. Dans le cas de plusieurs simultanéités, une requête simultanée. doit attendre si longtemps. Obtenez la prochaine tranche de temps.
Durée de la méthode de calcul par requête : 60,444 [ms] (moyenne, sur toutes les requêtes simultanées)*numéro de simultanéité

En termes simples, lorsque -n 1000 requêtes sont complétées avec -c 10 simultanéité, une requête supplémentaire est ajoutée. Le temps requis. pour compléter cette moyenne.

Ce dernier est une mesure de performance, qui reflète le temps moyen nécessaire pour terminer une demande et le temps nécessaire pour augmenter une demande dans les conditions de concurrence actuelles.
Temps de la méthode de calcul nécessaire pour les tests : 60,444 secondes/requêtes complètes : 1000

En termes simples, cela signifie que lorsque la concurrence -c 10 est utilisée pour terminer -n 1001 requêtes, cela prend plus de temps que pour terminer -n1000 requêtes.
Vous pouvez ajuster de manière appropriée les tailles -c et -n pour tester les performances du serveur et utiliser la commande htop pour vérifier visuellement la charge de la machine.

Ma machine est le super micro hôte de Shanda Cloud. La charge normale sur le processeur est de 1,7 %. La capture d'écran du résultat de la commande htop

Comment configurer ab pour effectuer des tests de stress pour le serveur Nginx

La charge après pressurisation est de 100 % et la charge a fondamentalement augmenté. Capture d'écran des résultats de la commande htop

Comment configurer ab pour effectuer des tests de stress pour le serveur Nginx

Il semble que je doive l'optimiser ou changer de machine.

Explication détaillée des paramètres ab
Pour les tests ordinaires, utilisez les paramètres -c -n pour terminer la tâche
Format : ./ab [options] [http://]hostname[:port]/path
Paramètres :
- n Le nombre total de requêtes testées. Par défaut, une seule requête est exécutée
-c est le nombre de requêtes simultanées à la fois. La valeur par défaut est un à la fois.
-h Ajoutez un en-tête de requête, tel que « accept-encoding : gzip », pour demander en mode gzip.
-t Nombre maximum de secondes d'exécution du test. Sa valeur implicite interne est -n 50000. Il peut limiter le test du serveur à une durée totale fixe. Par défaut, il n'y a pas de limite de temps.
-p contient le fichier qui doit être publié.
-t contient les informations d'en-tête de type de contenu utilisées par les données de publication.
-v définit la verbosité des informations affichées - 4 ou plus affichera les informations d'en-tête, 3 ou plus affichera les codes de réponse (404, 200, etc.), 2 ou plus affichera des avertissements et d'autres informations. -v affiche le numéro de version et quitte.
-w affiche les résultats au format tableau HTML. Par défaut, il s'agit d'un tableau à deux colonnes avec un fond blanc.
-i effectue une requête head au lieu de get.
-c -c cookie-name=value Attachez un cookie à la ligne request:. Sa forme typique est une paire de paramètres nom=valeur. Ce paramètre peut être répété.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer