Apache bench est un outil qui sert à faire des tests de performances sur une URL donnée.
On l’installe via apt-get install apache2-utils, puis on s’en sert (par exemple) de la manière suivante :
<br />
ab -n x -c y url<br />
Avec :
Exemple :
<br />
ab -n 1000 -c 100 www.google.com/<br />
On obtient ensuite un rapport avec notamment, le temps moyen de réponse, la bande passante consommée, le nombre de requêtes traitées par secondes… D’autres options sont possibles, et vous les trouverez dans les pages man.
Il est important de savoir que cet outil effectue uniquement une requête HTTP GET sur l’url concernée : dans l’exemple donné il va donc uniquement télécharger le HTML, mais pas les fichiers images, js et css externes, et ne les utilisera pas. Cela ne représente donc pas le ressenti réel de l’utilisateur, mais sert pour du dimensionnement.
On peut s’en servir de plusieurs manières. Sur une machine locale (ou la notion de bande passante n’a aucun sens), cela peut servir à tester l’effet de la mise en place d’un système de cache type Memcached ou Redis, ou bien pour voir si la configuration du reverse proxy tient la route. En production ou préproduction, cela permet de voir si la stack fait bien son travail. Mais surtout, Après avec effectué ce genre de requêtes, on regarde les outils de monitoring, et peut surveiller l’état de nombreux éléments : load, accès disques, etat de la base de données…
Attention, comme cet outil fonctionne url par url, il est important d’effectuer des tests sur plusieurs pages différentes, surtout les plus critiques (en terme de temps d’exécution et de fréquentation). Bien que votre home soit probablement la plus visitée, c’est aussi surement une des pages les mieux optimisées. D’autres pages un peu moins visitées peuvent être dangereuses pour les performances (lorsqu’elles ont de lourds calculs par exemples), et la santé de votre serveur.
L’idée de ce genre de d’outil, c’est surtout de regarder à quel moment le serveur va tomber en terme de charge. On effectue plusieurs tests avec des valeurs de plus en plus élevées, et on regarde à partir de quel moment le serveur ne tient plus. On fait ce genre de tests bien avant que le serveur n’atteigne de tels chiffres de fréquentation, ce qui permet d’anticiper les évolutions d’architecture à prévoir.