Le plugin «Fastcache»

Fastcache permet de servir beaucoup plus vite les pages les plus sollicitées du site. Sa version 0.3 s’appuie (notamment) sur l’extension xcache.

Fastcache permet de mettre devant certaines pages du site (par exemple, la page d’accueil, la page jquery.js, le flux backend/RSS...) un cache rapide qui évitera de solliciter toute la machinerie de SPIP à chaque hit. Il est utile aussi pour un article victime de son buzz !!

Prérequis

A noter :
-  pour l’activer sur une page, il faut vérifier que cette page doit bien afficher la même chose pour tous les visiteurs (hormis balise
#SESSION), donc pas de <?php echo $_SERVER[REMOTE_HOST] ?> ou d’horloge en php ;-)

-  il suffit sur le squelette correspondant d’ajouter la balise #FASTCACHE, par exemple juste après #CACHE{3600}

Installation

L’installation n’est pas tout à fait automatique, car il y a un fichier spip.php à mettre à la place du fichier officiel à la racine. Le plugin peut le faire à votre place si les droits correspondent, sinon c’est un processus manuel (ftp). Le spip.php en question est compatible 1.9.2 et SVN, et continue à fonctionner même si le plugin est désactivé.

Si on a cfg, on peut se rendre sur la page
ecrire/?exec=cfg&cfg=fastcache pour régler quelques paramètres.

Pour l’activer dans un squelette, ajouter la balise #FASTCACHE.

Le système est compatible avec la balise #SESSION, les visiteurs disposant d’un cookie de session n’étant jamais envoyés sur le cache rapide. En dehors de ce cas, si un squelette doit afficher quelque chose de spécifique pour chaque visiteur (comme, par exemple, son numéro IP), il n’est pas compatible avec #FASTCACHE.

Fonctionnement

Fast Cache est compatible avec les stats de SPIP, mais son efficacité est plus grande lorsque les statistiques des visites sont désactivées.

Ce plugin permet de servir 10 à 20 fois plus de pages que le SPIP normal [1] si les stats sont désactivées. Donc des performances comparables à celles d’Expresso, avec une approche complètement différente.

Ce qu’on y risque

-  On perd un peu en souplesse par rapport au modèle général des squelettes de SPIP : s’il y a du php dans un squelette, qui affiche (par exemple) le numéro IP du visiteur, ce numéro sera stocké dans le cache rapide et servi tel quel au visiteur suivant. Il faut donc s’assurer qu’on n’a pas un schéma de ce genre avant d’ajouter la balise #FASTCACHE.

-  Si on met la balise dans le squelette article.html, on risque potentiellement d’avoir beaucoup trop de fichiers “fc_*” dans le répertoire tmp/cache/ ; on manque encore de recul sur ce point. ; en utilisant l’extension php xcache (ou, à terme, memcache ou autre), ce problème disparaît.

-  Fastcache est compatible avec la mutualisation.

Ce qui est bien géré

Dans la mesure du possible le système est compatible avec les fonctionnalités de SPIP :
-  un visiteur ayant un cookie de session n’est pas routé sur le cache rapide : la personnalisation reste donc possible ;
-  toute modification substantielle de la base de données (ajout ou modération d’un forum, modification d’un article) est répercutée dans les caches rapides : le site n’est donc pas “gelé”;
-  quand on clique sur un bouton de recalcul, tous les caches rapides sont supprimés (réactivité instantanée);
-  en cas de souci, il suffit de désactiver le plugin et de vider le cache, pour retrouver le fonctionnement normal.

Footnotes

[1Attention on parle d’une poignée de pages très sollicitées : le plugin n’a aucun impact (ni positif ni négatif) sur les performances du site qui fait face à un robot d’indexation qui parcourt l’ensemble des pages.

updated on 2 October 2019

Discussion

Aucune discussion

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom