Fork me on GitHub

Comment gérer le système de cache de Xoops

200401
Mai
  Solo71 Lettres d'informations 7112



 

Comment gérer le système de cache de Xoops...

Xoops est probablement le système de CMS le plus avancé de sa génération. En utilisant toutes les technologies actuelles pour améliorer sa rapidité et son efficacité. Parmi elles, le système de templates et cache. Dans cet article, nous vous expliquerons comment configurer correctement votre site Xoopsé pour en améliorer les performances.

1) Le principe de cache

Il n'est pas nécessaire de réexpliquer ceci en détail, mais Xoops, comme tout CMS basé sur une architecture PhP et SQL, requiert des serveurs suffisamment puissants pour effectuer des requêtes complexes sur les bases de données. Pour résumer le principe, chaque fois qu'un utilisateur clique sur une page, il envoie une requête à destination de la base de données sur le serveur. Celui-ci calcule le résultat de la requête et le renvoit sous la forme d'un fichier html (ou sous forme de texte dans certains cas), et qui est lu par le navigateur de l'utilisateur.

La vitesse d'affichage des pages d'un site dépend de plusieurs paramètres, dont on peut donner quelques exemples :
- performance de la connection;
- performance du serveur web (machine elle-même et nombre de sites hébergés sur cette machine, à moins que tu bénéficies d'une machine dédiée pour toi tout seul);
- performance du serveur hébergeant la base sql;
- qualité de construction des pages du site.

La version 2.0.x de Xoops utilise un système de templates qui permet d'accélérer l'affichage des pages.

En utilisant ce système de cache, les résultats des requêtes sont stockés dans un répertoire temporaire, réduisant ainsi le nombre total de requêtes. Dans l'arborescence des fichiers Xoops, vous trouverez deux répertoires où sont stockés les fichiers en cache :

templates_c : Le répertoire qui contient tous les fichiers temporaires du thème.

cache : contient les fichiers tampon des blocs et des modules. Si vous n'activez aucun cache, ce répertoire est vide.

Par exemple, lorsque vous êtes sur la page d'accueil, si vous désactivez les systèmes de cache, sur chacun des modules et blocs affichés, vous obtiendrez facilement jusqu'à une centaine de requêtes (en fonction du nombre de blocs affichés, bien entendu) et ce à chaque fois qu'un utilisateur sollicitera cette page. Paramétré convenablement, le système de cache des modules et blocs vous permettra de réduire ce chiffre à une quarantaine en moyenne.  Ce qui aura pour effet d'améliorer grandement le temps de réponse de votre site. 

 

2) Configurer le cache du thème

Le thème de votre site est enregistré dans un répertoire cache par défaut. Pour vous en assurer, allez dans  'Admin / Admin Systéme / Préférences / Paramètres Généraux'. Repérez la ligne 'Mise à jour des Fichiers de Jeu de Thèmes à partir du répertoire themes/ ?' et cochez 'Non'.

Si cette option est activée, les fichiers du Jeu de Thèmes seront mis à jour automatiquement s'il y a des fichiers plus récents dans le répertoire 'themes/' pour le thème actuel. Cela doit être inactif lorsque le site est accessible au public.

3) Configurer cache des Modules

Xoops vous permet de mettre en place un système de cache sur un module dans son ensemble. Pour modifier ce paramètre rendez-vous à 'Admin / Admin Systéme / Préférences / Paramètres Généraux'. Là, descendez en bas de la page et vous verrez les options 'Cache large des modules'. Vous pouvez y modifier les paramètres généraux pour chaque module installé sur votre site. Le système met alors le contenu d'un module en cache pour une période de temps définissable.

Possibilité de cache

  • pas de cache
  • 30 secondes
  • 1 minute
  • 5 minutes
  • 30 minutes
  • 1 heure
  • 5 heures
  • 1 jour
  • 3 jours
  • 1 semaine

Pour vous aider à configurer correctement vos paramètres de cache, allez dans 'Admin / Admin System / Préférences / Paramètres Généraux', et sélectionnez Le mode de mise au point sur 'Mode de mise au point MySQL/Blocs'.

Utilisez le système de cache avec beaucoup de précaution. Xoops étant un système de gestion de contenu dynamique (par définition), vos paramétrages dépendront du taux d'interactivité que vous souhaiterez. Afficher un cache de 30 secondes peut se justifier sur des modules à fort trafic et à rafraîchissement fréquent : le module de la page d'accueil, par exemple. Alors que le choix d'1 semaine sera préféré pour les modules aux contenus plus 'statiques' auquel seul le webmestre (vous) a accès : sections, gestionnaires de pages html, FAQ, etc... Dans ce cas, vous pouvez faire le rafraîchissement du cache manuellement (cf. point 5)Gardez en mémoire que les compteurs de page (s'il y en a) seront aussi affectés par le système de cache...

Voici quelques suggestions pour certains modules Xoops standard :

  • Interactivité en temps réel (modules de chat) -> Pas de cache.
  • Interactivité importante (Forums) -> No Cache / 30 secondes (max.)
  • Interactivité moyenne (Téléchargement, Liens, Membres, Articles) -> 1 minute / 5 minutes / 30 minutes / 1 hour..?
    (pas plus, à mon sens la proposition d'un utilisateur ne doit pas être ignorée plus d'une heure)
  • Interactivité faible (Contactez-nous, Partenaires, Manchettes) -> 1 heure / 1 jour
  • Interactivité nulle (Sections, FAQ, Modules aux contenu figé) - 3 jours / 1 semaine

Faites attention au fait que vos réglages dépendront du  niveau de réactivité que vous voudrez accorder aux soumissions de vos membres... Sachez aussi que les commentaires ne sont pas affectés par le cache des modules.

 

4) Configurer le cache des blocs

Chaque bloc généré par Xoops peut se voir attribuer indépendemment un cache. L'utilisation est légèrement différente des modules ci-dessus, puisqu'ils vous permettent de mettre du cache sur des blocs de modules qui eux-mêmes ne sont pas mis en cache (et inversément). Même si le risque de 'décalage' est évident. 

Possibilité de cache

  • pas de cache
  • 30 secondes
  • 1 minute
  • 5 minutes
  • 30 minutes
  • 1 heure
  • 5 heures
  • 1 jour
  • 3 jours
  • 1 semaine
  • 1 mois (un paramètre supplémentaire pour les blocs seulement...)

En ce qui concerne les blocs, certaines fonctions requièrent  un accès en temps réel pour fonctionner correctement. Par exemple, n'utilisez jamais le cache sur :

  • Commentaires et sujets des forums récents. Cela peut être très perturbant pour un utilisateur qui ne voit pas apparaître sa réponse dans ces blocs. D'expérience, ils auront tendance à reposter leur réponse en pensant qu'elle n'a pas été enregistrée.
  • Login, menu utilisateur et menu principal. Ces blocs sont typiquemment très réacifs aux sollicitations des utilisateurs. Tout cache produit des effets inattendus.
  • Le block 'Qui est en ligne ?'. Encore un bloc qui fonctionne en temps réel pour des raisons évidentes.
  • Boîtes de dialogue en direct.
  • Tous les blocs qui utilisent des fonctions aléatoires (images, citations, données, etc.).
  • etc.

D'un autre côté, vous devriez affecter du cache aux blocs dont l'actualisation rapide est secondaire. Ici encore, vous pouvez envisager de le mettre à jour de façon manuelle si nécessaire (cf. point 5).

  • Les blocs de type 'Dernier paru ou Top 10' (Téléchargements, Liens, Articles, etc.) Ces informations ne requièrent pas vraiment d'aspect dynamique ni d'immédiateté de résultat. Le cache y trouvera toute son utilité.
  • Les blocs personnalisés avec du contenu statique (textes de bienvenue, liens personnalisés, infos, etc.) Afficher le cache le plus important.

A vous de déterminer quelle information dans un bloc est prioritaire et doit refléter avec précision l'actualité de votre site.

Voici un exemple de cache utilisé sur le site WolFactory, pour un total fréquent de 43 requêtes seulement...

 

Blocks
Menu Principal : No Cache
Menu utilisateur : No Cache
Login: No Cache
Block de chat : No Cache
Sondages : Cached (regenerates every 86400 seconds)
Spotlight - Articles : No Cache
WF-Section Recent: Cached (regenerates every 2592000 seconds)
Recent Downloads: Cached (regenerates every 18000 seconds)
Headlines: Cached (regenerates every 1800 seconds)
My MP box: Cached (regenerates every 60 seconds)
New Members: Cached (regenerates every 300 seconds)
Recent Topics: No Cache
Recent Comments: No Cache
What is new?: Cached (regenerates every 300 seconds)
Custom Block (PHP): No Cache
Site Info: Cached (regenerates every 2592000 seconds)
Active Members: Cached (regenerates every 1800 seconds)
Waiting Contents: Cached (regenerates every 30 seconds)
Custom Block (HTML): No Cache
Total: 19 blocks

 

5) Rafraîchir le cache.

Pour rafraîchir le cache (modules et blocks), allez tout simplement dans 'Admin / Admin Systéme / Préférences / Paramètres Généraux', et appuyez sur 'Go!'.

Pour les sections auxquelles seuls les webmasters ont accès mettez un cache maximum (1 semaine), et désactivez le cache lors de la mise à jour, et lorsque la nouvelle soumission est prête, réactivez le cache.

Enfin, et comme recommandé par l'équipe de développement de Xoops :

"If you are using the cache feature, clear cached files periodically by updating the general preferences in "system admin" => "preferences" for better performance."*

 

*"Si vous utilisez le système de cache, videz les fichiers de cache régulièrement en faisant une mise à jour des préférences générales "admin système " => "préférences" pour de meilleures performances."

Bon Xoops !

Longue vie à la Communauté xoopsienne Francophone (et mondiale !!!)


Solo71

Note: 9.00 (2 votes) - Noter cet article -

Partager Twitter Partagez cette article sur GG+
Format imprimable Envoyer cet article à un ami
Les commentaires appartiennent à leurs auteurs. Nous ne sommes pas responsables de leur contenu.
Régulier
Inscrit le: 17/12/2003
De: Laval
Contributions: 304
titoine76 Posté le: 24/06/2005 16:00  Mis à jour: 24/06/2005 16:00
 Re: Comment gérer le système de cache de Xoops
Je viens de m'interesser pour la premiere fois a ce systeme de cache.
Effectivement on peut obtenir un gain assez consequent et une fluidité du site accrue.

Super article
Aspirant
Inscrit le: 15/02/2006
De: Dreams
Contributions: 76
TaReKiSuS Posté le: 27/09/2006 20:21  Mis à jour: 27/09/2006 20:21
 Re: Comment gérer le système de cache de Xoops
Je confirme meme si l'article le confirme deja d'une façon scientfique

Merci pour toutes ces explications :xfsuper:
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

42 Personne(s) en ligne (2 Personne(s) connectée(s) sur Articles) | Utilisateur(s): 0 | Invité(s): 42 | Plus ...