- 1
[Opened] Cache de zone
Posted by webseb on 03/13/2008 20:53
Bonsoir,
Dans jelix les fichier de template en cache sont créer dans des répertoire du nom du module concerné.
mais pour les caches de zone il n'y pas cette distinction tout les fichiers sont dans le répertoire :
zonecache
Mon site utilise pas mal les caches de zones ( environ 15 fichiers dans le répertoire "/zonecache" par compte utilisateur juste pour le module "user".
Hors si le trafic du site augmente à disons 10000 utilisateur ou plus. je me retrouve avec 150 000 fichier juste pour le module user, plus ceux des autres modules
Est ce que je vais avoir des problèmes de performance du au nombre trop important de fichier et ou limite du nombre de fichier dans ce répertoire (Serveur Apache sous Linux )
Sinon pour info, y a t'il une raison technique de cette distinction
[Opened] Re: Cache de zone
Posted by laurentj on 03/13/2008 21:31
Salut,
la différence fondamentale entre le cache des templates et le cache des zone, c'est que le cache des templates est un cache de fichier PHP. Les templates sont transformés en fichier PHP, donc il y a un seul cache par template.
Tandis que le cache des zones est un cache de contenu. Il y a donc autant de fichier cache que de valeurs de paramètre de zone différents. Si tu as une zone qui affiche une news, que cette zone accepte en paramètre un identifiant de news, et si il y a 2000 news, tu auras 2000 fichiers caches. Si en plus tu as un paramètre de langue et que tu gères 3 langues, alors il y a aura 3 caches par news, donc 6000 fichiers caches, etc. En résumé, tu auras autant de fichier cache que d'enregistrements dans ta base, si ce n'est plus.
Bref, à toi de gérer ça correctement, de limiter le nombre de paramètres, voir de désactiver le cache pour les zones qui ne sont pas appelées souvent. Ce n'est pas toujours pertinent de l'activer si les zones en question sont utilisées sur des pages peu lues. Par exemple, une zone qui affiche le profil d'un user, c'est pas forcément utile sur un site comme jelix.org d'activer le cache, vu que bon, aller voir le profil d'un user du forum, c'est rare. Ça devient plus pertinent si le site est un site réseau social.
Pour ce qui est des problèmes de performances, tout va dépendre de ton serveur, de comment il est configuré, installé. Et ça va dépendre aussi du nombre de hits par jour que ton site va subir. Pour un site à 24 000 hits par jours ou 2400 visiteurs/jours (stats de xulfr.org ;-), ce n'est pas forcément pertinent d'activer le cache, à moins que ce site soit en hébergement mutualisé sur un serveur bien chargé et que mysql soit trop solicité.
En fait, je pense qu'il faut procéder ainsi :
- sur le serveur de production désactiver tous les caches de zones
- regarder ce que ça donne sur quelques heures ou quelques jours
- si il y a des problèmes de réactivité du site, alors regarder via les statistiques, quels sont les pages les plus visitées, et activer alors le cache sur les zones utilisées dans ces pages, et en priorité celles qui font des requêtes SQL lourdes.
- si ça suffit pas, il te faudra alors envisager de faire des modifications sur le serveur (installer un cache d'opcode pour php comme eaccelerator, apc; tunner apache ou remplacer apache par lighttpd etc), voir faire des choix plus radicaux comme changer de serveur, faire du load-balancing, migrer la base sur un serveur à part etc.
En conclusion, je dirais : n'active pas le cache des zones, sauf si nécessaire, et uniquement pour les zones les plus demandées. Et limiter le nombre de paramètres à ces zones.
[Opened] Re: Cache de zone
Posted by webseb on 03/14/2008 17:27
Merci pour toutes ces bonnes infos.
- 1