Test n°3 : 80 threads avec Varnish
On lance 80 threads JMeter sur le site en SSL avec Nginx, avec le cache Varnish et avec le plugin de cache WordPress WP Fastest Cache afin d’essayer de trouver la limite de la VM WordPress.
Les résultats bruts de JMeter : nombre de requêtes 935 664 avec 7% d’erreur.
La légende des abscisses indique le jour 10 (Février) suivi de l’heure.
Les 80 threads sont atteints à 08h27. C’est à partir de ce moment qu’on atteint le maximum de la charge jusqu’à 08h37.
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. On est à 360 requêtes/s ce qui prouve que la VM avec encore des ressources. On a augmenté de plus de 60% pour une augmentation de 100% du nombre de threads. Ce qui indique qu’il y a probablement une contention, sinon on aurait aussi fait 100% de requêtes/s en plus !
Apache ne fait rien ou presque.
La charge de la VM n’est pas significative, il ne faut pas tenir compte des petites variations.
L’utilisation de la CPU a doublé et passe à 20%, ce qui reste faible. Ce n’est pas en calcul que la VM est limitée.
Là aussi, on a un « joli » graphe mais pas significatif. MySQL ne fait rien.
On voit la contention !!! Le maximum de débit réseau est atteint à 8h20, alors que les 80 threads sont atteints à 8h27. Ce plateau montre que la VM n’arrive pas à produire plus de pages que lorsqu’elle est soumise à 65 threads.
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 pas jusqu’à 8h20 puis elle se disperse. En fait lorsque la machine est saturée, comme on atteint une limite de débit, les latences s’allongent.
Même constat, les temps de réponse s’allongent à partir de 8h20.
Et le débit ne suit pas les threads…..
Conclusions à tirer de ce troisième test :
- On a réussi à saturer la VM vers 65 threads.
- La contention apparaît au niveau du réseau. La VM n’arrive pas à fournir plus de 15 Mbps.
- Au delà de 65 threads, la VM répond, mais les temps de réponse s’allongent et elle produit des erreurs.