Quelqu'un peut-il expliquer ce que ces ApacheBench des résultats?
je suis à essayer de comprendre comment utiliser ApacheBench et la référence de mon site web. J'ai installé le site par défaut du projet (c'est ASP.NET MVC, mais s'il vous plaît ne mettez pas arrêter de lire si u n'êtes pas un .NET de la personne).
Je n'ai pas changer quoi que ce soit. Ajouter un nouveau projet. Ensemble confuration à la LIBÉRATION. Exécuter sans Débogage. (il est donc en mode LIVE). Oui, c'est intégré dans le serveur web, pas le niveau de la production IIS ou Apache ou quoi que ce soit.
Voici donc les résultats :-
C:\Temp>ab -n 1000 -c 1 http://localhost:50035/
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 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
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
Server Software: ASP.NET
Server Hostname: localhost
Server Port: 50035
Document Path: /
Document Length: 1204 bytes
Concurrency Level: 1
Time taken for tests: 2.371 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 1504000 bytes
HTML transferred: 1204000 bytes
Requests per second: 421.73 [#/sec] (mean)
Time per request: 2.371 [ms] (mean)
Time per request: 2.371 [ms] (mean, across all concurrent requests)
Transfer rate: 619.41 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 1.1 0 16
Processing: 0 2 5.5 0 16
Waiting: 0 2 5.1 0 16
Total: 0 2 5.6 0 16
Percentage of the requests served within a certain time (ms)
50% 0
66% 0
75% 0
80% 0
90% 16
95% 16
98% 16
99% 16
100% 16 (longest request)
C:\Temp>
Maintenant, je ne suis pas sûr exactement ce que je devrais être en train de regarder.
Tout d'abord, j'lorsque le nombre de requêtes par seconde. Donc, si nous avons une exigence de traiter 300 reqs/sec, alors est-ce dire qu'il gère et moyenne 421 req est un sec?
Autre part, quelle est la raison de l'ajout de plus en même temps? Comme dans, si j'ai 1000 hits sur 1 simultanées, comment ne diffèrent 500 à 2 simultanées? Est-ce pour tester si il y a un code qui bloque les autres demandes?
Enfin, est-il quelque chose d'important que j'ai manqué aux résultats, je devrais en prendre note?
Merci 🙂
OriginalL'auteur Pure.Krome | 2009-09-13
Vous devez vous connecter pour publier un commentaire.
C'est un peu de ça, oui : votre application est probablement faire des choses où la simultanéité peut apporter des ennuis.
Quelques exemples :
Des tests avec une simultanéité de l'un est OK... tant Que votre site n'aura jamais plus d'un utilisateur en même temps ; ce qui est assez peu réaliste, j'espère que pour vous.
Vous devez penser à combien d'utilisateurs sur le site en même temps, quand il est dans la production-et d'ajuster la simultanéité ; souvenez-vous seulement que 5 utilisateurs en même temps sur votre site ne signifie pas que vous avez à tester avec une simultanéité de 5 avec ab :
Aussi, deux autres choses :
Au passage : vous voudrez peut-être jeter un oeil à d'autres outils, qui peuvent faire beaucoup plus complète de tests, comme siège, Jmeter, ou OpenSTA : ab est vraiment agréable quand vous voulez mesurer si quelque chose vous a fait c'est de l'optimisation de votre page ou pas ; mais si vous voulez simuler une utilisation "réelle" de votre site, ceux-ci sont beaucoup plus adaptés.
OriginalL'auteur Pascal MARTIN
Oui, si vous voulez savoir combien de demandes par seconde de votre site est en mesure de servir, regardez la rubrique "Demandes par seconde ligne".
Dans votre cas, c'est vraiment très simple puisque vous avez exécuté ab avec la simultanéité de 1. Chaque demande, en moyenne, a pris seulement 2.371 mme. 421 de ceux-ci, l'un après l'autre, prendre 1 seconde.
Vous devriez vraiment jouer avec la simultanéité un peu d'estimer précisément la capacité de votre site.
Jusqu'à un certain degré de simultanéité que vous attendez le débit à l'augmentation, de même que plusieurs requêtes traitées en parallèle par IIS.
E. g. si votre serveur dispose de plusieurs Processeurs/cœurs. Aussi, si une page s'appuie sur externe e /s (moyen de niveau de service, ou DB appelle) le processeur peut fonctionner sur une demande, tandis qu'un autre est en attente d'e /s complet.
À un certain point les requêtes/s va se stabiliser, avec l'augmentation de la concurrence, et vous verrez augmentation de la latence. Augmentation de la simultanéité encore plus et vous verrez que votre débit (req/sec) diminution, comme le serveur a consacrer plus de ressources à jongler avec toutes ces demandes simultanées.
Tout ce que dit, la majorité de vos demandes de retour dans environ 2ms. C'est vachement vite, donc je suppose que il n'y a pas grand chose en termes de DB ou de niveau intermédiaire appels, et votre système est probablement maxed sur la cpu lors de l'exécution du test (ou quelque chose qui est mal, et à défaut de vraiment rapide. Êtes-vous sûr que ab obtient la réponse à la page que vous avez l'intention? I. e. est la page que vous pensez que vous testez 1204 octets?).
Ce qui nous amène à un autre point: ab consomme du cpu aussi, surtout une fois que vous la simultanéité. Si vous souhaitez exécuter ab sur une autre machine.
Aussi, si votre site de faire des appels externes de niveau intermédiaire des services ou DBs, vous souhaitez régler votre machine.config pour optimiser le nombre de threads IIS alloue:http://support.microsoft.com/default.aspx?scid=kb;en-us;821268
Et juste une petite anecdote: le temps de la statistique se fait par incréments de ~16ms, comme cela apparaît à la granularité de la minuterie utilisée. I. e. 80% de vos réponses n'ont pas pris 0ms, ils ont pris un certain temps <16ms.
OriginalL'auteur turnhose