Test n°2 : 40 threads avec Varnish
On lance 40 threads JMeter sur le site en SSL avec Nginx, mais cette fois avec le cache Varnish et avec le plugin de cache WordPress WP Fastest Cache.
Les résultats bruts de JMeter : nombre de requêtes 482 789, 0% d’erreur.
La légende des abscisses indique le jour 09 (Février) suivi de l’heure.
Les 40 threads sont atteints à 23h35. C’est à partir de ce moment qu’on atteint le maximum de la charge.
Les métriques de la VM sont les suivantes. La granularité de l’outil de graphes Munin, utilisé pour ces tests est de 5 minutes.
Il faut noter l’amélioration du maximum. Dans le scénario sans Varnish on arrive à 170 requêtes/s, ici on monte à 220 requêtes/s.
Apache traite cent fois moins de requête avec Varnish. En fait dans le scénario, il y a une requête dynamique dans le scénario et qui ne peut pas être cachée par Varnish. Elle est toujours passée à Apache. On note également sur les deux graphes précédents, mais on retrouvera ce comportement sur tous les graphes suivants, qu’on bien un plateau identique au plateau de nombre de threads. Contrairement au scénario 1, sans Varnish où la VM ne suit plus les thread de l’injecteur JMeter une fois au maximum. Ce qui confirme la saturation de la VM dans le scénario 1.
La charge de la VM n’est pas significative, il ne faut pas tenir compte des petites variations qui sont sous la valeur 0,2.
Les valeurs sont tellement faibles que ce graphe n’est pas significatif. Ici on a des millièmes de requêtes par seconde.
Les métriques coté JMeter sont les suivantes. La granularité des JMeter est de 1 minutes, c’est donc beaucoup plus précis dans notre cas que les graphes Munin.
La latence ne varie quasiment pas avec la charge. Il n’y a pas de saturation. On note également une diminution de la latence par un facteur 10 au moins. On voit la capacité de Varnish à cracher du HTTP !
Même constat, les temps de réponse sont exceptionnels et ne varient pas. Sauf pour la courbe violette correspond à une page qui pèse 10 fois plus que les autres.
Trois conclusions à tirer de ce deuxième test :
- Les latences et les temps de réponse sont exceptionnels
- Le nombre de requêtes fournies par seconde augmente de 30%, parce que les pages sont servies plus vite.
- A 40 threads, la VM n’est pas saturée, contrairement au test précédent qui avait atteint les limites. Les graphes JMeter et Munin suivent le graphe des threads !
On va doit pouvoir pousser le test à 80 threads