Jump to content

[1.6.1.6] Bug Cache Smarty & Block User Infos


Wibleo

Recommended Posts

Bonjour à toutes et à tous,

 

Je rencontre un problème avec le cache smarty, sans en comprendre la raison.

 

Lorsque celui ci est activé (avec ou sans recompilation des fichier), mon lien "mon compte" qui normalement devrait apparaitre une fois loguer en FO, n'apparait plus...

 

- J'ai vidé mes caches manuellement et depuis le BO + depuis mon module page cache + navigateur

- J'ai réinitialisé le module en question

- Tenté de désactiver le module de cache + différents modules présent sur le display top (là où sont accroché le module en question et d'autres sur mon thème)

- Vérifié sous firebug et avec l'inspection de chrome : il y a bien la dix mais vide.

 

J'ai même tenté de désactiver le cache serveur, sans résultat.

 

Quand le cache smarty est désactivé, celui-ci apparait correctement.

 

Si quelqu'un aurait une piste, je serais un e-commerçant comblé !

 

Merci d'avance et très bonne journée connectée ;)

Link to comment
Share on other sites

Bonjour,

 

Je me souviens avoir dû supprimer des données de cache dans la base de données, après avoir voulu tester les performances de cette méthode de cache vs. le système de fichiers. De mémoire, je crois que le bouton "Vider le cache" en back office n'avait pas l'effet escompté. Ou peut-être que j'avais simplement désactivé le cache ou réactivé le cache en utilisant le système de fichiers, et du coup l'action n'avait aucun effet dans la base de données.

 

Bref... c'est une piste, mais aujourd'hui et après avoir testé les différentes (combinaisons de) solutions de cache offertes par Prestashop, je n'en utilise aucune. Mais il y a peut-être un gain en ayant avec un catalogue de produits volumineux, ce qui n'est pas mon cas.

Link to comment
Share on other sites

Bonjour,

 

Merci pour votre réponse, effectivement le cache de prestashop n'est pas optimum, nous n'avons pas non plus un gros catalogue, mais notre site est gourmand. Du fait sans le système de cache, il est quand même plus lent.

 

Je peux vous demander ce que vous utilisez comme solution de cache ?

 

Nous sommes entrain de tester un VPS sur lequel je vais ajouter Varnish + cloudflare. Nous avons aussi un module "Page Cache", mais je pensais quand même conserver les caches smarty.

 

En tout cas merci encore, je vais creuser du côté de la base de donnée, j'avoue être un néophyte, donc j'apprend au fur et à mesure :)

 

Très bonne journée connectée ;)

Edited by Wibleo (see edit history)
Link to comment
Share on other sites

J'ai l'habitude d'utiliser Varnish et Memcached pour les sites qui en ont besoin, mais pour la boutique Prestashop dont je m'occupe, il n'y a rien de spécifique, simplement car son propriétaire est satisfait de sa vitesse de chargement. Il avait choisi un VPS avec 4Go de RAM avant que je prenne la main. J'ai simplement passé la version de PHP de la 5.3 à la 5.6, afin de bénéficier de son module OPcache, et j'ai affiné les valeurs d'expirations des entêtes HTTP du serveur Web (Apache).

 

S'il s'agit de Page Cache v3, ça me semble être du fragment cache en stockant dans un système de fichiers. Donc il me semble que le cache Smarty sera inutile, et que ce module n'apportera rien de plus que Varnish. Les deux se situent entre le serveur Web et le client. Le premier stocke dans des fichiers, le second dans la mémoire du serveur. Varnish nécessite de configurer le passage des cookies, tandis que l'inconvénient d'une méthode de cache par système de fichiers est la relative lenteur d'écriture sur le disque vs. en mémoire.

 

Pour vérifier si le bloc User Infos est caché en base de données, regardez dans la table ps_smarty_cache en faisant une recherche avec une classe CSS ou un identifiant de tag HTML.

Edited by GuillaumeCW (see edit history)
Link to comment
Share on other sites

Du fait, si je comprend bien, le cache smarty ne me sert pas si j'ai déjà le module Page Cache V3 en fonction, car ça fait doublon finalement dans le méthode de fonctionnement (cache par stockage de fichier). Et si je met en place Varnish sur mon serveur, ce sera une méthode plus véloce car pas de temps de latence dû à l'écriture des fichiers (stockage au niveau mémoire du serveur) ?

 

Pour ce qui est du PHP nous sommes déjà en 5.6 (PHP7 retournant une erreur sur nos fiches produit), j'ai aussi ajouté/optimisé les valeurs d'expirations dans le htaccess (mais c'était sur le mutu OVH)

 

Donc finalement je n'ai même pas à corriger cette erreur de cache vu que c'est le cache smarty qui en est responsable (je vais chercher quand même dans BDD car j'aime bien comprendre et apprendre).

 

Je vais checker et posterais tout même si dans la BDD il y avait un cache pour ce module et posterais pour la communauté :)

 

En tout cas merci beaucoup pour l'aide, si j'ai bien compris, j'ai beaucoup appris !

Link to comment
Share on other sites

Désolé, mais j'ai apporté deux confusions dans mon précédent post. D'après l'auteur du module, il faut garder le cache Smarty activé. Je suppose qu'il vient le compléter et/ou l'optimiser. Et Varnish est complémentaire, car il stocke les contenus "externes" de la page (images, CSS, JS...), mais pas le propre contenu HTML de la page, ce que fait le cache par système de fichiers ou en base de données.

 

Mais cela n'enlève pas les avantages du cache mémoire ni les désavantages du cache par système de fichiers ou en base de données. Même si une fois les contenus externes mis en mémoire, la vitesse de chargement devient largement optimisée, APC, Memcache(d), ou encore XCache, pour ceux que Prestashop propose d'intégrer, se charge de la mise en cache du contenu de la page en mémoire.

 

Encore désolé pour ces deux erreurs... le cache est un vaste sujet. J'ai vu que votre site est en https; notez qu'il faudra par exemple utiliser Nginx pour transférer les requêtes HTTPS vers votre serveur HTTP, car Varnish n'est pas capable de les interpréter ni d'y répondre.

Link to comment
Share on other sites

Aucun souci, c'est très sympa de partager votre expérience. J'ai bien compris les différents principes et vais m'atteler à leurs optimisation/correction/ajout.

 

De plus, un grand merci pour la spécification sur Varnish + Ngix :) Car j'aurais pu chercher longtemps lol.

 

Très bonne fin de journée, je viendrais poster les résultats de recherches en BDD.

Link to comment
Share on other sites

Petit news, je n'ai pas eu le temps de regarder dans la base de donnée.

 

En revanche je viens de comprendre cette portion de ton post  GuillaumeCW :

 

Je me souviens avoir dû supprimer des données de cache dans la base de données, après avoir voulu tester les performances de cette méthode de cache vs. le système de fichiers.

 

Je pensais que tu parlais de la dernière option qui permet de choisir entre système de fichier ou memcached/APC... Mais en fait c'est l'option sous le cache smarty dont tu parlais ? J'étais en fait sous "système de fichier" à ce niveau, je viens de tester le cache par base de donnée MySQL et ça a résolu le souci... Donc je n'avais pas de cache au niveau de la BDD. Ca reste donc un mystère.

 

En revanche il faudra que je vérifie à ce que les fichiers caches dans la BDD ne deviennent pas trop volumineux :)

 

En tout cas merci pour ton aide et bonne continuation :)

Edited by Wibleo (see edit history)
Link to comment
Share on other sites

Oui, je parlais bien du cache (de fragments de page) Smarty. C'est ce à quoi je pense généralement lorsqu'un bloc de module rencontre un problème d'affichage. Je n'ai jamais approfondi le sujet, mais je pense que le cache proposé plus bas est utilisé pour garder en mémoire (ou dans des fichiers) le résultat de requêtes complexes dans la base de données, comme la liste des produits à afficher dans une catégorie par exemple.

 

Tant que le bloc User Infos s'affiche bien en revenant au système de fichiers pour le cache Smarty, oui, votre problème est résolu.

 

Bonne continuation également.

Link to comment
Share on other sites

Oui, je parlais bien du cache (de fragments de page) Smarty. C'est ce à quoi je pense généralement lorsqu'un bloc de module rencontre un problème d'affichage. Je n'ai jamais approfondi le sujet, mais je pense que le cache proposé plus bas est utilisé pour garder en mémoire (ou dans des fichiers) le résultat de requêtes complexes dans la base de données, comme la liste des produits à afficher dans une catégorie par exemple.

 

Tant que le bloc User Infos s'affiche bien en revenant au système de fichiers pour le cache Smarty, oui, votre problème est résolu.

 

Bonne continuation également.

Non en fait le problème est toujours présent si je repasse en système de fichiers, donc je reste sur le cache par la BDD.

 

Ca ne pose pas de souci le système de cache par BDD ?

Link to comment
Share on other sites

Non, il est censé être plus performant, mais ça dépend des ressources allouées par le serveur et de la configuration de la base de données.

 

En revenant au système de fichiers pour le cache Smarty, en désactivant Page Cache et en supprimant les contenus des dossiers cache/page-cache et cache/smarty/, le lien "Mon compte" ne s'affiche toujours pas ? Si c'est le cas, je n'ai aucune idée du problème.

Link to comment
Share on other sites

Bonjour,

 

Merci pour votre réponse, désolé j'étais un peu débordé, effectivement avec le cache par système de fichier c'est toujours en défaut, mais vu que le cache par SQL est plus performant et ne génère pas de défaut, je n'ai pas poussé plus mes recherche.

 

Je marque résolu quand même et vous souhaite une bonne fin d'été... connecté ;)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...