SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Administration > Accélération > Fastcache

Le plugin « Fastcache »

vendredi 14 décembre 2007, par Fil. Dernier ajout mardi 22 juillet 2008


Permet de servir beaucoup plus vite les pages les plus sollicitées du site.


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, il n’est pas compatible avec #FASTCACHE.

Fonctionnement

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

Chez moi (Fil) ce plugin permet de servir 4 fois plus de pages que le SPIP normal, si les stats sont activées, et 50 fois plus [1] si les stats sont désactivées. Donc des performances comparables à celles d’Expresso, avec un approche complètement différente (pas de défi du merge, ici***

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.

- Le plugin n’est pas (pas encore?) compatible avec la mutualisation : en effet on se base sur un répertoire tmp/ avant même de savoir de quel site mutualisé il s’agit.

- Rien d’autre à priori.

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.

Notes

[1] Attention 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.


Répondre à cet article

  • Site planté avec « Fastcache » ???

    2 août 2008 18:12, par Loiseau2nuit

    Bonjour,

    Je viens d’activer Fastcache sur un de mes projets en cours et c’est devenu la cata.

    Mon site est complètement planté avec cette erreur php qui alterne :

    Parse error: syntax error, unexpected T_SL in /web/affairealoevera/www/plugins/fastcache/creer_fastcache.php on line 29

    ou encore

    Parse error: syntax error, unexpected $end in /web/affairealoevera/www/plugins/fastcache/creer_fastcache.php on line 44

    C’est selon...

    D’ailleurs, je n’y capte plus grand chose à php5 mais mon éditeur clignote rouge lorsque j’édite ce fichier. Il doit y avoir un os quelque part mais je serais bien incapable de dire où (peut être le <<<CONFIG mais je n’en suis pas sur...)

    Merci pour vos retours.

    Etienne

    Répondre à ce message

    Retour au début des forums

  • Le plugin « Fastcache »

    12 juin 2008 14:25

    Désolé pour cette question vraiment bête ^^ mais on le télécharge où ce plugin ?

    merci bcp,

    Yann

    Répondre à ce message

    Retour au début des forums

  • Le plugin « Fastcache » Est génial...

    10 avril 2008 11:59, par Yanik Bourgeois

    C’est une bombe ce plug. Je l’ai testé sur le site de notre association (en cours de refonte). http://aneg.aeroclub.free.fr La majorité des adhérents consulte sous IE6, sur des configs très anciennes, d’où son grand intérêt.

    Seulement, lorsqu’il est opérationnel, il bloque l’execution des javascripts (menus déroulant, splickrbox, thickbox etc.) Sous IE6. Après vidage du cache, la première exécution est ok, les suivantes sont défaillantes. Spip 1.9.2d

    - d’où celà peut-il provenir ? autres question :
    - Concrètement, à quoi sert le paramètre de durée du cache rapide ?

    Pour info : pour désintaller proprement, ne faut’il pas supprimer aussi le fichier/temp/pre_spip.inc, si l’on conserve le spip.php modifié ?

    Ps : fastcache est désactivé pour permettre l’accès aux adhérents (validation du projet). Merci pour votre écoute et votre aide

    Répondre à ce message

    Retour au début des forums

  • Le plugin « Fastcache »

    11 mars 2008 09:41, par Jean Luc Girard

    Pour limiter dans un squelette Article le cache aux pages voulues, les indications que j’ai mis dans la doc de expresso sont surement valables. La problématique c’est d’éviter toutes les pages secondaires avec des paramétres tels que debut_forums ou debut_breves (ou plein de sales trucs que les liens externe viennent mettre) et qui conduisent à une inflation du cache ...

    Pour ne retenir donc que les bonnes pages, j’ai défini ce filtre qui teste le nombre de variables passées dans l’url pour ne retenir que les urls canoniques :

    function iscached($cool=2)
    {
    //  count ($_GET) vaut basiquement 2 car après les redirections url_propre, on se trouve dans une page appelée par spip.php avec 2 parms : le nom de la page (article ou rubrique) et la valeur id_article ou id_rubrique
    return (count ($_GET)==$cool ? " " : "");
    };

    et l’appel devrait donner quelquechose comme ça, adapté pour fascache :

    <BOUCLE_cache(ARTICLES){titre_mot='cacheok'}>
      [(#NOOP|iscached) #FASTCACHE ]
    </BOUCLE_cache>

    Pour la page d’accueil (squelette : sommaire.html), il n’y a pas d’autres parametre que le nom de la page (=sommaire), donc l’appel se fera différemment :

    [(#NOOP|iscached{1}) #FASTCACHE ]

    Répondre à ce message

    Retour au début des forums

  • Le plugin « Fastcache »

    2 février 2008 10:57, par paolo

    Je viens de le mettre en service pour les pages d’accueil et les pages de rubrique pour notre site. Je pense que cela accelère vraiment ces pages. Merci !

    Je vois que la version SPIP SVN utilise déjà un fichier spip.php plus récent (23/1/2008) que celui de Fastcache (23/12/2007). Comment ne pas passer à côté d’une mise à jour SPIP lorsqu’on utilise ce plugin ?

    Répondre à ce message

    • Le plugin « Fastcache » 2 février 2008 18:06, par Fil

      Salut Paolo,

      en fait si spip.php semble plus récent, c’est parce que j’ai commité par erreur celui de fastcache — avant de remettre l’ancien. C’est un fichier qui change très peu. Peut-être fastcache passera-t-il un jour dans le core, je ne sais pas. En attendant, ne t’inquiète pas, je suis l’histoire de près.

      Répondre à ce message

    Retour au début des forums

  • Comment l’installet

    6 janvier 2008 18:11, par Thierry Gagnon

    Très intéressant !!! Malheureusement, je ne trouve pas de lien vers les fichiers à installer. Comment dois-je procéder ?

    Répondre à ce message

    • Comment l’installet 15 janvier 2008 19:41, par vcris

      Comme le plugin est encore en développement il n’y a pas de zip disponible, tu peux donc le trouver ici

      Pour le télécharger il faut que tu utilises toirtoise svn pour récupérer les sources sur spip-zine

      Répondre à ce message

    Retour au début des forums

  • Que devient le délais de CACHE des INCLURES ?

    17 décembre 2007 04:08, par Iago

    Après quelques tests, si j’ai bien compris, une page mise en cache avec FASTCACHE ne tiendra plus compte d’un délais plus court qu’on donnerait à un INCLURE dynamique. Ce dernier se comporterait alors comme un INCLURE statique ?

    Répondre à ce message

    Retour au début des forums

  • Le plugin « Fastcache »

    16 décembre 2007 02:03, par Mortimer

    J’ai pas compris, c’est quoi le problème avec le squelettes des articles ?

    Sinon, si on fait des <inclure>, fastcache passe bien aussi n’est ce pas. Du coup, si on met pas le fastcache sur le article.html, c-est grave de le mettre sur les squelettes inclus par ce squelette ?

    Répondre à ce message

    • Le plugin « Fastcache » 16 décembre 2007 11:44, par Fil

      A priori il faut mettre #FASTCACHE sur le premier squelette ; je n’ai pas testé si ça marchait si on l’indique dans les inclusions. Ca marche aussi sur article.html, la seule inconnue c’est ce qui se passe si on a un trop grand nombre de pages dans le cache rapide (il n’y a aucun contrôle de la taille du cache).

      Répondre à ce message

    Retour au début des forums

  • Le plugin « Fastcache » - pourquoi ?

    16 décembre 2007 18:52, par NicolasR

    Pour ne pas que cela s’enterre sur les listes je met cela ici

    De : Fil
    Date : 15 décembre 2007 16:21:26 GMT+01:00
    Objet : Rép : [SPIP Zone] fastcache

    Que fait donc FastCache, lui, pour avoir un gain aussi important aussi ?

    1) il s’installe sur le pipeline affichage final, et si la page comporte #FASTCACHE, il stocke une copie de la page complète dans un fichier de cache.

    2) il déroute les hits de spip.php vers fastcache.php, qui regarde s’il existe un fichier de cache correspondant, et provoque un readfile() sur ce fichier

    pour gagner encore un peu, il stocke la page dans 4 formats : html, html+gzip, html+ie, html+ie+gzip.

    enfin il stocke aussi un fichier contenant les entetes sous la forme @header(’XX : y’)

    — Fil

    Répondre à ce message

    Retour au début des forums

  • Le plugin « Fastcache » - activation sur SPIP-Contrib

    16 décembre 2007 01:30, par NicolasR

    Histoire de voir je viens d’activer Fastcache sur Contrib. Si le site se traine ou explose on saura pourquoi ;-)

    Sinon j’ai mis la balise #FASTCACHE sur :
    - sommaire
    - backend et backend-forum
    - mots
    - rubrique
    - recherche (par curiosité, histoire de voir si cela permet de resservir plus vite les recherches déjà faites)
    - article (malgré l’avertissement ci-dessus, histoire de tester)

    @+ NicolasR

    Répondre à ce message

    Retour au début des forums



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et vie SPIP-Contrib | SPIP | L'autre.net