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
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
La charge après pressurisation est de 100 % et la charge a fondamentalement augmenté. Capture d'écran des résultats de la commande htop
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!