web-dev-qa-db-fra.com

Problème persistant avec le cache Joomla

J'ai un site Joomla qui a eu des problèmes persistants avec son cache.

Nous sommes en mesure de résoudre ces problèmes au fur et à mesure en consultant le panneau d'administration et en effaçant les caches, mais nous préférerions évidemment qu'ils ne se produisent pas du tout. Mais j'ai du mal à essayer de résoudre le problème pour trouver la cause sous-jacente.

Les symptômes sont que le site fonctionne normalement pendant un certain temps, puis commence soudainement à donner des pages vierges avec une erreur 500. Le problème semble empirer après une récente mise à jour de Joomla 3.8.

J'ai fait du débogage et le crash est une erreur de mémoire insuffisante. L'emplacement exact varie, mais le dernier exemple m'a donné ceci:

Taille de mémoire autorisée de 268435456 octets épuisés (tenté d'allouer 30548627 octets) .../libraries/src/Cache/Storage/FileStorage.php: 195

Ceci est dans la méthode FileStorage::store(), essayant d'ajouter un bloc de code au cache.

En regardant le contenu de $data _ à ce stade, il est sérialisé PHP). Cette base de données contient de nombreuses copies de tous les modules de la page d’accueil. nous essayons de nous y préparer.

Il existe certainement de multiples instances de tous les modules, et je suppose qu’ils s’accumulent dans le cache au fil du temps, jusqu’à ce qu’il devienne trop volumineux pour la limite de mémoire.

Ce que je ne comprends pas (et que je ne parviens pas à résoudre à cause du débogage que j'ai fait) est la raison pour laquelle cela se produirait. Au moment où l'erreur fatale se produit, la construction de cette grande structure remplie de modules est déjà bien avancée et je n'ai pas la connaissance approfondie des composants internes de Joomla pour me permettre de creuser davantage.

Quelqu'un peut-il me donner des indications sur ce qui pourrait se passer ici et sur la façon de le résoudre de manière permanente?

Merci.

5
Simba

Basculez vers la mise en cache conservative, la mise en cache progressive doit être évitée . Vous rencontrerez toutes sortes de problèmes en raison de la mise en cache progressive, notamment des problèmes de mémoire et de système de fichiers. Sans oublier, bien sûr, qu'en raison de toutes ces écritures de fichiers constantes causées par la mise en cache progressive, vous pouvez rencontrer une défaillance matérielle.

Très peu de sites Joomla doivent vraiment utiliser la mise en cache progressive, et ceux qui en ont réellement besoin finissent par utiliser autre chose. La mise en cache progressive n’est pas bien codée et elle est bien pire dans Joomla 3.8.

À propos, si vous avez défini cette limite de mémoire à 256 Mo parce que vous rencontrez des problèmes à cause de l'utilisation de la mise en cache progressive, je vous suggère de réduire ce nombre à 64 Mo gérables (après avoir basculé vers la mise en cache conservative). 256 Mo est trop élevé et est rarement nécessaire sur un site Joomla.

2
itoctopus