[Résolu] WPML fait planter Maria DB lorsqu'il tente d'exécuter des dizaines de requêtes sur la table wp_options
Ce sujet est résolu. Voici une description du problème et de la solution.
Problème : Le client rencontre un problème de surcharge sur son serveur MariaDB causé par un grand nombre de requêtes générées par WPML et ACFML, même sans modification des paramètres WPML. Le client souhaite comprendre l'utilité des tableaux
Solution : Nous avons identifié que le problème est lié à une ancienne version d'ACFML qui tente de synchroniser les champs. Nous recommandons fortement de mettre à jour les plugins WPML et ACFML pour résoudre le problème de performance. La dernière version de WPML, 4.6.9, inclut des améliorations significatives de performance. Avant de procéder à la mise à jour, il est crucial de faire une sauvegarde du site. Suivez notre guide pour une mise à jour sécurisée : Comment mettre à jour WPML en toute sécurité.
Si la mise à jour n'est pas possible pour le moment, une solution temporaire consiste à commenter la ligne suivante dans le fichier
Cependant, cette solution est temporaire et la mise à jour des plugins est la meilleure approche pour éviter de futurs problèmes.
Si cette solution ne vous semble pas pertinente, veuillez ouvrir un nouveau ticket de support : Forum de support WPML.
Il s'agit du forum d'assistance technique de WPML, le plug-in multilingue pour WordPress.
Il est accessible à tous, toutefois seuls les clients de WPML peuvent y publier leurs messages. L'équipe du WPML répond sur le forum 6 jours par semaine, 22 heures par jour.
WPML fait planter Maria DB lorsqu'il tente d'exécuter des dizaines de requêtes sur la table wp_options. Nous avons échangés avec le support de l'infogérence qui nous demande de séparé la requête. Malheureusement il s'agit d'une seule directive avec une très longue valeur. Comment pouvons-nous faire ?
En résumé:
- Allez dans "WPML > Assistance > Information de débogage" (lien)
- Copiez l'information.
- Puis trouvez le champ privé que j'ai activé pour la coller.
---
icl_sitepress_settings contient des informations importantes et fait référence à toutes les options incluses dans WPML, comme la configuration, les shortcodes, les statuts des champs (traduire, copier). Il ne faut donc pas supprimer cette ligne ou la modifier.
En résumé:
- Faites un backup de la base de données
- Choisissez "autoload = no" pour icl_sitepress_settings
De plus, vous pouvez réduire la taille de la table _options en suivant ces étapes :
- wpml_notices : peut être supprimé
- wpml_strings_need_link_fixed : peut être réduit en exécutant l'option Traduire les cibles de lien dans WPML > Paramètres.
- wpml_tp_api_logger : peut être supprimé
- WPML(logs): peut être supprimé
- wpml_tp_com_logs peut être effacé en allant dans "WPML > Assistance > journal de communication (lien)"
Merci pour votre réponse.
Je n'ai pas de champ privé pour coller cette information, pourriez-vous l'activer svp ?
Aussi, j'ai déjà tenté de mettre le champ en autoload = no mais cela ne change rien, d'autant plus que c'est l'UPDATE du champ qui pose problème, et non pas le SELECT.
Pour le reste des option_name "wpml_", elles ne posent pas problème elles non plus.
Les langues: Anglais (English )Français (Français )Arabe (العربية )
Fuseau horaire: Pacific/Easter (GMT-06:00)
Bonjour,
Mon collègue Nicolas est actuellement en congé, je m'occuperai donc de votre demande par la suite :
1- Serait-il possible de partager un dump de la base de données de votre site ?
J'ai ouvert un champ privé pour que vous puissiez le partager.
2- J'aimerais vous demander un accès temporaire au wp-admin et au FTP de votre site de test,
Il est important de noter que vous devez sauvegarder votre site et votre base de données avant de procéder, et vous pouvez utiliser un plugin comme Duplicator à cette fin. Voici un lien vers ce plugin : http://wordpress.org/plugins/duplicator/
Si vous ne voyez pas le formulaire ci-dessous, n'entrez pas vos informations d'identification, car elles seront exposées publiquement :
lien caché
3- En fonction de nos observations, nous pourrions avoir besoin de migrer votre site sur l'un de nos serveurs cloudways, ce qui serait le moyen le plus efficace de déboguer les problèmes de performance, et ensuite je pourrais escalader le problème à nos développeurs.
Gardez à l'esprit que nous travaillons déjà sur des problèmes similaires liés à icl_sitepress_settings autoload, la migration de votre site nous aidera à identifier si votre site a les mêmes problèmes ou non, et nous permettra de faire des tests sans affecter votre site live/prod.
J'ai tenté l'expérience de placer un LOGGER sur le hook "update_option".
En 10 minutes, l'option "icl_sitepress_settings" était mise à jour entre 38 et 800 fois par MINUTE. Soit 3819 UPDATE en 10 min.
J'en ai analysé quelques uns, pour le moment il s'agissait souvent de modifier un seul chiffre dans les tableaux [translation-management][custom_fields_translation] et [translation-management][custom_term_fields_translation].
Est-ce que je peux empêcher, temporairement, WPML de faire ses dizaines de milliers d'update ? Quel est le risque ? Car les données mises à jours ne semblent pas très importantes...
Avec les fêtes de fin d'année nous n'aurons pas nécessairement quelqu'un 7j/7 pour redémarrer Maria DB à chaque fois que WPML le fait planter :-/
Les langues: Anglais (English )Français (Français )Arabe (العربية )
Fuseau horaire: Pacific/Easter (GMT-06:00)
Malheureusement, il n'est pas recommandé de bloquer temporairement ces mises à jour sans les tester à long terme (cela pourrait causer des dommages inattendus), et je suis désolé de ne pas avoir de solution rapide car il faut plus de temps pour comprendre la nature du problème,
J'ai dû faire remonter le problème à nos développeurs car nous avons eu un problème similaire avec WPEngine, où ils effacent la clé de paramétrage de WPML, car elle est trop grande pour ses limitations. (peut-être que Kinsta a quelque chose de similaire ?), ce qui fait que WPML exécute ces requêtes plusieurs fois par jour.
Et dans un autre cas, ces requêtes sont exécutées à chaque fois que vous chargez une page,
Quel est le cas qui correspond le mieux à votre situation ?
Je ne peux pas vraiment savoir sans installer quelques plugins pour surveiller vos requêtes, puis-je installer Query Monitor ? Quand ces requêtes sont-elles exécutées ?
Avez-vu pu avoir des réponses de vos développeurs concernant notre problème ?
De notre côté, les deux cas se présentent. Ces requêtes sont exécutées à chaque fois qu'une page est chargée, nous ne savons pas bien pourquoi puisque nous ne modifions pas les paramètres WPML. Compte tenu du trafic relativement important sur notre site, et basé sur mon analyse ici (https://wpml.org/fr/forums/topic/wpml-fait-planter-maria-db-lorsquil-tente-dexecuter-des-dizaines-de-requetes-sur-la-table-wp_options/#post-15093671) cela engendre plus d'un demi million de requête par jour sur un champ de près de 300 000 caractères pour simplement modifier un caractère ... imaginez-vous la surcharge ?
De plus, parfois, à une fréquence que nous n'avons pas réussi à déterminer, WPML envoi plus de 100 ou 150 requêtes en même temps et cela fait planter notre serveur Maria DB (problème à l'origine de ma demande de support ici).
Nous avons déjà Query Monitor d'installé que nous activons par parcimonie lorsque cela est nécessaire (c'est un site de production tout de même). Malheureusement, face au caractère "aléatoire" de ces surcharges, nous ne pouvons faire de tests efficace sur ces requêtes : nous ne pouvons pas laisser Query Monitor activé en permanance et nous ne pouvons plus l'activer une fois que le problème a commencé.
Pouvez-vous me dire a quoi servent les tableaux [translation-management][custom_fields_translation] et [translation-management][custom_term_fields_translation] de icl_sitepress_settings qui semblent être mis à jour sans cesse ?
Les langues: Anglais (English )Français (Français )Arabe (العربية )
Fuseau horaire: Pacific/Easter (GMT-06:00)
Bonjour,
Il s'avère que nous avons eu récemment des problèmes similaires liés à la performance sur lesquels nos développeurs travaillent déjà.
Afin d'accélérer la recherche d'une solution pour votre site, nous avons besoin soit d'un dump de la base de données et d'un clone de fichiers, soit d'un Duplicator PRO, serait-il possible de nous fournir cela ?
Merci pour votre retour.
Vous avez déjà les accès FTP et et je mets à jour le dump de la BDD à disposition dans le dépôt FTP (voir message privé du 19/12/2023).
PS : Pour information, hier nous avons dépassé le million d'update de l'option icl_sitepress_settings avec exactement 1 048 960 updates en 24h (soit une moyenne de plus de 12 / seconde)