L'outil de référence Apache est très basique, et s'il vous donnera une idée solide de certaines performances, c'est une mauvaise idée de ne dépendre de lui que si vous prévoyez d'exposer votre site à un stress important en production.
Cela dit, voici les paramètres les plus courants et les plus simples:
-c
: ("Concurrence"). Indique le nombre de clients (personnes / utilisateurs) qui accèderont au site en même temps. Pendant les ab
courses, des -c
clients arriveront sur le site. C'est ce qui décide en fait de la quantité de stress que votre site subira pendant le benchmark.
-n
: Indique le nombre de demandes qui vont être effectuées. Cela décide simplement de la longueur du benchmark. Une -n
valeur élevée avec une -c
valeur que votre serveur peut supporter est une bonne idée pour s'assurer que les choses ne se cassent pas sous un stress soutenu: ce n'est pas la même chose de supporter le stress pendant 5 secondes que pendant 5 heures.
-k
: C'est ce que font les navigateurs de fonctionnalité "KeepAlive" par nature. Vous n'avez pas besoin de passer une valeur -k
car elle est "booléenne" (ce qui signifie: cela indique que vous souhaitez que votre test utilise l'en-tête Keep Alive de HTTP et maintienne la connexion). Étant donné que les navigateurs le font et que vous voudrez probablement simuler le stress et le flux que votre site aura à partir des navigateurs, il est recommandé de faire un test de performance avec cela.
Le dernier argument est simplement l'hôte. Par défaut, il atteindra le protocole http: // si vous ne le spécifiez pas.
ab -k -c 350 -n 20000 example.com/
En exécutant la commande ci-dessus, vous accéderez à http://example.com/ avec 350 connexions simultanées jusqu'à ce que 20 000 demandes soient satisfaites. Cela sera fait en utilisant l'en-tête keep alive.
Une fois le processus terminé les 20 000 demandes, vous recevrez des commentaires sur les statistiques. Cela vous dira dans quelle mesure le site a fonctionné sous le stress que vous lui mettez en utilisant les paramètres ci-dessus.
Pour savoir combien de personnes le site peut gérer en même temps, il suffit de voir si les temps de réponse (moyens, temps de réponse minimum et maximum, demandes échouées, etc.) sont des nombres que votre site peut accepter (différents sites peuvent souhaiter des vitesses différentes). Vous pouvez exécuter l'outil avec des valeurs -c différentes jusqu'à ce que vous atteigniez l'endroit où vous dites "Si je l'augmente, il commence à recevoir des demandes échouées et il se brise".
En fonction de votre site Web, vous vous attendez à un nombre moyen de demandes par minute. Cela varie tellement que vous ne pourrez pas simuler cela avec ab. Cependant, pensez-y de cette façon: si votre utilisateur moyen va répondre à 5 requêtes par minute et que le temps de réponse moyen que vous trouvez valide est de 2 secondes, cela signifie que 10 secondes sur une minute, 1 utilisateur sera sur les requêtes, ce qui signifie seulement 1/6 du temps, il arrivera sur le site. Cela signifie également que si vous avez 6 utilisateurs qui accèdent simultanément au site avec ab, vous aurez probablement 36 utilisateurs en simulation, même si votre niveau de concurrence (-c) n'est que de 6.
Cela dépend du comportement que vous attendez de vos utilisateurs utilisant le site, mais vous pouvez l'obtenir à partir de "Je m'attends à ce que mon utilisateur atteigne X requêtes par minute et je considère un temps de réponse moyen valide s'il est de 2 secondes". Ensuite, modifiez simplement votre niveau -c jusqu'à ce que vous atteigniez 2 secondes de temps de réponse moyen (mais assurez-vous que le temps de réponse maximum et stddev sont toujours valides) et voyez combien vous pouvez faire -c.
J'espère avoir expliqué cela clairement :) Bonne chance