Utilisateur connecté, cache & recalcul de la home page

Bonjour,
je rencontre un problème de lenteur sur un site SPIP pour certains utilisateurs. Je tiens à préciser que je connais très peu SPIP, j’ai lu au maximum la documentation mais il est possible que certains éléments m’aient échappés. Je demande votre indulgence, merci :slight_smile:

De quoi parle t-on exactement:

  • site en spip 3.2.12 (et prochainement 3.2.13…)
  • plugin cache cool en version en 1.0.7 (la 1.0.8 apporte seulement la déclaration de support de spip 4)
  • le site est derrière un CDN (cloudflare)
  • le site est hebergé sur un serveur dédie chez Infomaniak
  • la home page du site est la même pour tous les utilisateurs (logués ou non), il n’y a pas de balise #SESSION ou ce genre de choses qui permettrait d’accéder à des vues supplémentaires.

Que se passe t-il?
Les utilisateurs possédant un accès à l’espace privé mette beaucoup de temps à charger la home page (environ 30s). Aucun problème pour les visiteurs.
Cela fait quelques jours que ces lenteurs sont observées, bien que le site n’ai pas été mis à jour depuis début janvier (application de la 3.2.12). Pas de modifications des réglages sur le serveur ni sur le CDN.

Je vous passe l’historique de mes 1ères recherches de débutant SPIP, mais la découverte du profiler m’a permis d’identifier ce que je pense être le problème. Lorsqu’un visiteur logué se connecte, il déclenche le (re)calcul de la home page.
Ce calcul est lent (30s) à cause de boucles imbriquées qui génèrent beaucoup de requêtes SQL, il faudrait probablement revoir du code mais en l’état je ne peux (ni ne sais) corriger ce point, donc il me faut vivre avec. En revanche, autant ce délai est acceptable lors d’un « recalcul la main », autant c’est beaucoup plus embêtant de manière quasi systématique.

Ce que j’observe:

  • en passant le paramètre /?var_profile=1 à l’URL, j’ai d’habitude ce profil qui apparait (issu de la doc):

    Dans la compréhension, c’est ce que je devrais tout le temps à jour avec un cache dynamique ET statique fonctionnel
  • or, depuis l’apparition du problème j’ai exactement le même résultat que lorsque je passe ?var_profile=1&var_mode=calcul , ce qui pour moi est la démonstration qu’un recalcul vient de se produire (le résultat est extrêmement verbeux, aucun intérêt à ce que je ne le poste ici)

Ce que je trouve étrange, et si vous pouviez m’aider sur ces points ce serait :heart_eyes:

  • j’ai bien noté que ce recalcul pouvait intervenir après une modification de $GLOBALS['meta']['derniere_modif'] et/ou du fichier cache/sql_desc_*.txt MAIS je note parfois un recalcul alors que ni ni l’autre n’ont changé (je monitore la variable dans la table SQL meta et la date de modification du fichier sur le serveur). Typiquement, si j’actualise ma home page toutes les 30s pendant 10min je n’ai pas de problèmes. Mais si je ne fais rien et que je reviens 10min après, je pars dans un recalcul :thinking: Sauriez vous quel autre paramètre pourrait déclencher ce phénomène? Y a t-il un rapport avec les fichiers stockés dans /tmp/cache/xx/yy.cache ?
  • je ne comprends pas pourquoi ce recalcul se déclenche sur la connexion d’un utilisateur logué. Qu’il se déclenche automatiquement après publication d’un article pourquoi pas mais que vient faire un utilisateur logué?
  • j’ai également fait le test avec 2 utilisateur logués. A se connecte et déclenche un recalcul. B se connecte à son tour et se prend également un reclacul dans la vue… Le cache n’est-il pas généré une fois pour toue pour tout le monde?

À ce stade, je commence à ne plus trop avoir de pistes pour le debug.
Merci à vous :slight_smile:

C’est normal, c’est le principe de cache cool cf " Dans ce cas, et si le visiteur n’est pas connecté, il lui envoie la vieille version du cache" Cache Cool - SPIP-Contrib

Pour le reste, difficile de t’en dire plus sans les détails techniques : plugins utilisés, code maison, code du squelette de la page sommaire, etc.

Merci pour ta réponse.
C’est étrange, la désactivation de cache cool ne change rien au comportement et même activé je ne vois pas de jobs Calcul du cache inclure/rubriques [inclure_page] comme expliqué dans la doc…

Pour les plugins, le reste ce ne sont que des plugins d’édition (type correcteur othographe ou autres) rien qui n’intervienne en profondeur.