SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 208 visiteurs en ce moment

Accueil > Optimisation et performances > Fastcache > Le plugin « Fastcache »

Le plugin « Fastcache »

28 octobre 2009 – par Fil – 35 commentaires

22 votes

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.

Voir en ligne : http://plugins.spip.net/fastcache

Notes

[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.

Dernière modification de cette page le 11 juin 2012

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 16 décembre 2007 à 18:52, par NicolasR En réponse à : Le plugin « Fastcache » - pourquoi ?

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

    De : Fil <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

    • Le 15 février 2012 à 18:28, par b_b En réponse à : Le plugin « Fastcache »

      Une autre info « comparative » intéressante :

      Ce sont deux approches différentes du même problème
      que Fil et moi avons développé en même temps en parallèle :
      -  FastCache est sans doute à préférer si l’on veut conserver les
      stats, où sur des serveurs pour lesquels on n’a pas accès aux
      rewriterules, et si PHP est chargé en module apache, voire accéléré
      par eaccelerator ou autre
      -  Expresso ne permet pas du tout de conserver les stats, mais il sert
      le cache uniquement avec Apache, sans PHP. Cela est plus intéressant
      sur les serveurs où PHP est chargé en CLI voire tourne en suPHP (ie
      les dédiés d’OVH par exemple dans leur release 2 d’OVH).

      http://article.gmane.org/gmane.comp.web.spip.zone/7957

    Répondre à ce message

  • Le 3 janvier 2012 à 09:54, par balou En réponse à : Le plugin « Fastcache »

    Bonjour,

    depuis la mise en place de FastCache sur notre site, j’ai constaté que le nombre de visites a été multipliées par 4. Cependant le nombre réel de visites est quand a lui resté constant (Source Google Analytic).

    La configuration du site est la suivante :

    SPIP : 2.1.12
    FastCache : 0.4.0 et Le cache des pages est géré par la méthode filecache.

    Le site : Latoniccia Club Plongée

    Répondre à ce message

  • Le 18 mars 2010 à 10:57, par Mat En réponse à : Prérequis d’installation

    Bonjour

    J’ai un peu de mal à comprendre quels sont les prérequis techniques nécessaire à l’utilisation de FastCache.

    Le module XCache doit-il être obligatoirement installé sur le serveur ?
    Quel est le role de Memoization dans tout cela ?

    Après avoir installé ces 2 plugins et rajouté #FASTCACHE en entête de ma page d’accueil , je ne vois pas le gain ?
    Comment le vérifier ?

    Quelles sont les entêtes HTTP injectés en plus par ce plugin ?
    Y a-t-il le content-length qui fait défaut à SPIP en standard.

    Merci.

    Répondre à ce message

  • Le 7 février 2010 à 11:45, par paolo En réponse à : Le plugin « Fastcache »

    Il est utile aussi pour un article victime de son buzz !!

    Pour ajouter Fastcache sur juste un article plein de buzz je fais quelquechose comme ça au début d’article.html :

    #CACHE{7200}
    <BOUCLE_fc(MOTS){id_article}{id_mot=187}>#FASTCACHE</BOUCLE_fc>
    <!DOCTYPE html PUBLIC ...Transitional//EN"

    C’est bien ça ?

    Répondre à ce message

  • Le 5 février 2010 à 11:56, par serge En réponse à : Le plugin « Fastcache »

    Bonjour à tous !
    Où en est l’évolution du plug-in « Fastcache » ?
    Quelqu’un peut-il faire un retour avec son expérience pour mieux compléter cet article s.v.p. ?
    Je suis en train de tester avec la dernière version de Spip et je ne vois pas de différence pour le moment. Je ne suis pas sur de la bonne installation du plug-in...
    Merci pour préciser la méthode avec peut-être la formule du plug-in à télécharger par Gilles Vincent ci-dessous ?
    Cordialement,
    — 
    Serge

    • Le 5 février 2010 à 14:58, par serge En réponse à : Le plugin « Fastcache »

      Je reviens vers vous après mon essai :

      "memoization" est demandé pour le fonctionnement.
      Je l’ai trouvé ici

      Il est nécessaire de placer la balise « Fastcache » en début de pages comme indiqué => ex : #CACHE7200#FASTCACHE pour le sommaire.
      Ou alors de configurer CFG qui contrôle le plugin.

      MERCI pour cette belle avance ; Je trouve le résultat puissant ! => test

      Serge

    • Le 6 février 2010 à 18:25, par serge En réponse à : Quelques difficultés

      J’ai fait l’installation à partir de CFG sur plusieurs sites sous Spip 2.0.10 mais je rencontre un bug dans plus de la moitié des installations, et pourtant avec avec les mêmes FAI j’ai le message suivant :

      « Internal Server Error
      The server encountered an internal error or misconfiguration and was unable to complete your request.
      Please contact the server administrator, postmaster@monsite.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.
      More information about this error may be available in the server error log. »

      Une idée ?

    Répondre à ce message

  • Le 14 décembre 2009 à 20:31, par JLuc En réponse à : Le plugin « Fastcache »

    Avec l’option Debug, un commentaire html est sensé figurer en bas des pages cachées, mais je ne le vois jamais apparaître ! C’est un commentaire de quel type qui apparaît où exactement ?
    Par contre, il y a bien « X-Fast-Cache » sur les httpheaders d’une page fastcachée.

    Problème : je vois parfois apparaître :

    Warning: xcache_get(): xcache.var_size is either 0 or too small to enable var data caching in /home/passerelleco/www/plugins/memoization/memo/xcache.inc on line 20 Warning: xcache_set(): xcache.var_size is either 0 or too small to enable var data caching in /home/passerelleco/www/plugins/memoization/memo/xcache.inc on line 26

    Cela apparaît assez souvent en fait, et même sur des pages qui ne sont pas fastcachées (pendant un temps j’avais activé l’option « fastcacher toutes les pages » mais depuis j’ai désactivé et « vidé le cache » (le cache normal)).
    Que déduire de ce message et quelles conséquences tirer ? Qu’il manque de mémoire et que le plugin ne sait pas s’arrêter à temps ?

    [Edit : ] je viens de désactiver le plugin, et les messages d’erreurs sont toujours là... C’est très embêtant.

    • Le 15 décembre 2009 à 09:52, par JLuc En réponse à : Le plugin « Fastcache »

      La nuit est passée,
      bien que fastcache désactivé,
      les erreurs sont restées
      ...

      Pour me débarasser de ces erreurs j’ai du éditer le spip.php gentiment modifié et remplacer :

      if (@file_exists(_FC_LANCEUR)) include _FC_LANCEUR;
      else {


      par :

      // if (@file_exists(_FC_LANCEUR)) include _FC_LANCEUR;
      // else
      {
    • Le 15 décembre 2009 à 11:10, par Fil En réponse à : Le plugin « Fastcache »

      Le message d’erreur indique que ta configuration de xcache ne permet pas d’y enregistrer le moindre bit d’information.

      Regarde combien vaut xcache.var_size dans ta config.

    • Le 15 décembre 2009 à 12:00, par JLuc En réponse à : Le plugin « Fastcache »

      Effectivement, ça vaut 0... du coup memoization devrait utiliser filecache ! Dommage aussi que ça affiche une erreur sur toutes les pages ...

      Bon je modifie memoization.php pour forcer filecache ...

    • Le 15 décembre 2009 à 14:05, par Fil En réponse à : Le plugin « Fastcache »

      filecache c’est vraiment le moins intéressant de la bande ; ce qui serait sympa c’est de détecter le problème de la valeur insuffisante, et de stocker un message d’erreur à afficher dans l’admin de spip, qui inciterait à améliorer ses réglages

    • Le 15 décembre 2009 à 23:20, par JLuc En réponse à : [résolu] Le plugin « Fastcache »

      Oui ce serait bien de tester non seulement la présence de la fonction xcache_set mais aussi la valeur de « Variable Cache » (ça s’appelle comme ça en tout cas dans le phpinfo) enabled ou pas ou la valeur de xcache.var_size (dans le phpinfo).

      Là, mon hébergeur (merci www.lixium.fr !) est un champion : 3 minutes après lui avoir demandé pour mon site mutualisé, il lui a accordé 1Mo de xcache.var_size, et fastcache marche désormais ! Avec le petit commentaire html en fin de fichier.

      yo...

    • Le 15 décembre 2009 à 23:40, par Fil En réponse à : [résolu] Le plugin « Fastcache »

      Oui. Attention toutefois pour ne pas ralentir, à ne pas faire ce test à chaque hit, mais seulement dans la (future) page de configuration, ou seulement en cas d’erreur.

    Répondre à ce message

  • Le 11 mars 2008 à 09:41, par JLuc En réponse à : Le plugin « Fastcache »

    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($texte, $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 paramètre que le nom de la page (=sommaire), donc l’appel se fera différemment :

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

    Répondre à ce message

  • Le 25 novembre 2009 à 10:18, par Gilles Vincent En réponse à : Archive du plugin « Fastcache »

    Une archive est disponible dans la zone :
    http://files.spip.org/spip-zone/fastcache.zip

    Répondre à ce message

  • Le 2 août 2008 à 18:12, par Loiseau2nuit En réponse à : Site planté avec « Fastcache » ???

    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 /***/*********/***/plugins/fastcache/creer_fastcache.php on line 29

    ou encore

    Parse error: syntax error, unexpected $end in /***/*********/***/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

  • Le 12 juin 2008 à 14:25, par ? En réponse à : Le plugin « Fastcache »

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

    merci bcp,

    Yann

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?
  • [Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Acces Restreint 3.0

    11 décembre 2008 – 784 commentaires

    Le plugin accès restreint permet de définir et de gérer des zones de l’espace public en accès restreint. Cette version du plugin a été redévelopée et optimisée tout spécialement pour SPIP 2.0. Il en découle une amélioration des performances sur les gros (...)

  • Champs Extras 3

    16 janvier 2012 – 538 commentaires

    Ce plugin permet de créer et/ou de gérer des champs supplémentaires dans les objets éditoriaux de SPIP. Il permet donc de prendre en compte et d’afficher de nouveaux éléments dans n’importe quel objet éditorial de SPIP. Screencast Vous n’aimez pas (...)

  • Réservation d’événements

    16 mars 2015 – 190 commentaires

    Ce plugin permet d’offrir aux visiteurs de s’inscrire pour un évènement du plugin Agenda et de gérer les réservations enregistrées. Installation Le plugin s’installe comme n’importe quel plugin. il nécessite : Agenda API de vérification (...)

  • Les crayons

    23 avril 2008 – 815 commentaires

    Ce plugin permet d’éditer les contenus sur les pages publiques du site, sans passer par l’espace privé de SPIP.

  • LESS pour SPIP : Less-CSS (anciennement LESSpip)

    5 novembre 2010 – 43 commentaires

    Less-CSS (Anciennement LESSpip) est un plugin intégrant facilement le logiciel LESS dans SPIP. LESS est une extension de CSS ajoutant les variables, les classes, les opérations, les imbrications au langage. Facilitant ainsi l’écriture de (...)

Ça spipe par là