Super Cache peut booster votre site
Le principe de WordPress est de composer dynamiquement la page web demandée par l’internaute, en allant chercher le contenu dans la base MySQL . Le moteur PHP génère alors une page HTML qui est envoyée au navigateur de l’internaute.
Le système permet une forte interactivité avec l’internaute pour stocker ses commentaires.
Il présente surtout l’avantage de créer le contenu de manière conviviale directement à partir du navigateur, sans aucun éditeur HTML.
L’inconvénient bien connu est de consommer du CPU pour faire tourner la base de donnée avec, au final, un temps accru de présentation de la page.
Quelques dixièmes de seconde d’attente en plus peuvent suffire pour perdre votre internaute.
La solution pour pallier à cet inconvénient, tout en gardant l’interactivité du CMS, est donc d’utiliser un plugin de cache.
Le principe du cache est simple : la page appelée est composée puis conservée en zone tampon . Son affichage ne nécessite alors plus d’aller chercher le contenu dans la base MySQL.
Il y a deux façons de générer une page en cache :
- soit créer directement une page codée en HTML qui sera servie tel quelle à l’internaute,
- soit créer une page en PHP qui sera interprétée par le moteur PHP pour envoyer le code HTML correspondant au navigateur de l’internaute.
La première méthode est évidemment plus rapide, puisque la page est devenue réellement statique. La deuxième élimine l’étape de la connexion en base de donnée mais nécessite encore des ressources CPU pour interpréter le code PHP.
A partir de ces rappels théoriques, j’ai voulu mesurer en pratique les différences en utilisant l’outil siege à partir d’un serveur dédié.
Siege est un petit logiciel sous Linux qui permet littéralement d’assiéger un serveur en lui présentant de multiples requêtes dans un court laps de temps, via plusieurs « clients » opérant en parallèle.
Le plugin utilisé pour ce test est Super Cache qui peut utiliser tous les modes de fonctionnement décris plus haut.
J’ai lancé quatre requêtes pendant 20 secondes chacune.
Les requêtes étaient présentées par 5 clients simultanément, avec un temps d’attente aléatoire entre deux requêtes, allant de 0 à 5 secondes, pour ne pas menacer le serveur qui m’héberge
.
Dans la première requête, le plugin Super Cache était en OFF et aucune statique HTML n’était disponible. La base de donnée était donc sollicitée.
16 requêtes seulement ont pu êtres envoyées en 20 secondes dont la moitié seulement a réussi.
En effet 8 requêtes sur 16 ont renvoyés un code 500 correspondant à une erreur au niveau du serveur. Les requêtes réussies ont nécessité entre 2.40 seconde et 7.27 secondes.
Pour la deuxième requête, j’ai utilisé le mode HALF ON du plugin Super Cache correspondant à la demi solution que je présentais en introduction: la page est stockée en PHP et la base de donnée n’est pas interrogée. Seul le moteur PHP est sollicité.
En 20 secondes, j’ai ainsi pu envoyer 32 requêtes qui ont toutes été réussies, avec des temps allant de 0.10 à 2.08 secondes.
La troisième requête correspond au mode ON du plugin avec génération de page HTML.
En 20 secondes, 30 requêtes, toutes réussies, ont pu êtres reçues, avec des temps allant de 0.05 à 0.11 secondes.
La quatrième et dernière requête renvoyait à une page HTML, générée au préalable par le plugin : le mode cache direct du plugin. La page est stockée directement avec le permalien comme titre du fichier.
En 20 secondes, j’ai donc présenté 37 requêtes: toutes ont été réussies, avec un temps par requête allant de 0.04 seconde à 0.08 seconde.
|
Mode du plugin |
Nombre de requêtes |
Taux de réussite |
Temps minimum |
Temps maximum |
|
OFF |
16 |
50% |
2.40 |
7.27 |
|
HALF ON |
32 |
100% |
0.10 |
2.08 |
|
ON |
30 |
100% |
0.05 |
0.11 |
|
ON + direct page |
37 |
100% |
0.04 |
0.08 |
La conclusion est sans appel:
Un cache est indispensable lorsque votre site commence à recevoir une bonne fréquentation. A défaut vos visiteurs risquent de ne pas être servis.
Le mode Super Cache est beaucoup plus rapide que le mode HALF ON.
Le mode Direct Cache du plugin améliore encore légèrement la rapidité de WordPress.
Je terminerais ce billet en donnant les mesures observées avec le plugin Hyper Cache:
|
Hyper Cache |
Nombre de requêtes |
Taux de réussite |
Temps minimum |
Temps maximum |
|
ON |
35 |
100% |
0.09 |
0.38 |
A vous de choisir maintenant votre plugin