L’utilisation de WP All Import, de WordPress Importer et de plugins similaires pour importer des fichiers XML, CSV, WXR et des images est une tâche courante pour les développeurs et les sites dont le contenu change fréquemment. Toutefois, il est également fréquent que des problèmes de timeout et de performance du site Web surviennent pendant le traitement de ces importations.

Dans cet article, nous discuterons des étapes que vous pouvez suivre pour vous frayer un chemin à travers un processus d’importation difficile.

Veuillez noter que nous ne pouvons pas garantir que chaque processus d’importation se déroulera avec succès sur notre plateforme. Si l’importation ne peut pas être exécutée avec succès chez Kinsta, nous vous recommandons d’effectuer l’importation dans un environnement de développement local et d’importer ensuite la base de données ou la table mise à jour dans la base de données de votre site Web.

Pourquoi les importations causent-elles des timeouts et des problèmes de performance ?

Il existe deux types de timeouts auxquels se heurtent généralement les gros processus d’importation :

  • Les timeouts PHP se produisent si un seul processus PHP s’exécute plus longtemps que le max_execution_time ou max_input_time défini dans la configuration PHP. Lorsque cela se produit, une erreur de serveur 502 est généralement affichée.
  • Les timeouts HTTP se produisent lorsque la connexion entre votre navigateur et le serveur Web est maintenue ouverte trop longtemps. Lorsque cela se produit, une erreur 504 Gateway Timeout est généralement affichée.

Il est courant que les performances d’un site Web soient également plus lentes lorsqu’une importation importante est en cours d’exécution. C’est parce que PHP et MySQL sont occupés à gérer le processus d’importation. Le trafic régulier sur le site doit donc attendre que PHP et MySQL soient disponibles pour générer la page demandée.

Gérer les timeouts PHP

Si vous rencontrez un timeout PHP, le temps d’exécution max_execution_time et le temps d’entrée max_input_time peuvent avoir besoin d’être élevés. Sur notre plateforme, ces valeurs sont fixées à 300 secondes (5 minutes) par défaut. Les valeurs maximales de timeout PHP disponibles sur notre plateforme sont basées sur votre plan d’hébergement actuel.

  • Plans Starter et Pro : 300 secondes est la valeur la plus élevée que nous puissions supporter.
  • Plans Business : Nous pouvons temporairement augmenter le timeout à 600 secondes (10 minutes).
  • Plans Entreprise : Nous pouvons élever la valeur à 600 secondes (10 minutes) en permanence ou temporairement à 1800 secondes (30 minutes).

Une augmentation temporaire de la durée du timeout serait appropriée si vous avez besoin que la durée du timeout soit élevée pendant moins de 4 heures afin de compléter un processus d’importation unique. Si vous prévoyez avoir besoin de la valeur élevée du timeout pour une période de temps plus longue ou sur une base récurrente, vous devrez passer à un plan Entreprise.

Nous ne permettons pas que les timeouts soient fixés à plus de 600 secondes sur n’importe quel plan sur une base permanente. D’après notre expérience, les sites qui nécessitent des timeouts plus longs sur une base permanente connaîtront d’importants problèmes de stabilité au cours de ces processus de longue haleine. Plutôt que de sacrifier la stabilité du site Web, si vous avez des processus récurrents qui nécessitent des timeouts plus longs, la meilleure solution est de travailler avec un développeur pour ajuster le processus à long terme plutôt que de continuer à augmenter la durée du timeout.

Si vous souhaitez demander une augmentation temporaire ou permanente des paramètres de timeout PHP, veuillez ouvrir un ticket de support.

Gestion des timeouts HTTP

Les timeouts HTTP se produisent généralement après 60 secondes pour les sites hébergés chez Kinsta. En raison de la conception de notre infrastructure, nous ne sommes pas en mesure d’augmenter la durée du timeout HTTP.

Si vous rencontrez un timeout HTTP, il y a deux étapes à suivre pour tenter de résoudre le problème :

  • Si le processus s’interrompt pendant le téléchargement du fichier d’importation, passez à une connexion Internet plus rapide et réessayez le processus.
  • Si vous utilisez un outil prenant en charge WP-CLI, tel que le plugin WordPress Importer, vous pouvez exécuter l’importation directement sur le serveur et contourner entièrement la connexion HTTP.

Veuillez noter que l’exécution d’une importation via SSH est une modification du contenu de votre site Web qui n’entre pas dans le cadre de ce que notre équipe de support. De plus, si vous n’êtes pas familier avec SSH, vous devrez soit apprendre à utiliser cet outil puissant, soit travailler avec un développeur pour traiter l’importation via SSH.

Traiter les questions de performance des sites Web

Si le processus d’importation fonctionne correctement mais que votre site ne fonctionne pas bien pendant le processus, vous avez deux options :

  • Planifiez l’activité d’importation à un moment où le trafic est faible afin de minimiser l’impact sur les visiteurs de votre site.
  • Passez à un plan avec plus de workers PHP sur votre site en production. Si les problèmes de performance sont dus à l’indisponibilité de PHP pour gérer plus de demandes, la mise à niveau temporaire vers un plan avec plus de workers PHP signifie que PHP a plus de capacité pour gérer à la fois le trafic vers le site et l’importation.
  • La mise à niveau d’un plan n’aidera pas si vous essayez d’exécuter une importation sur un site de développement. Notre environnement de développement a un ensemble constant de workers PHP et ne sera pas affecté par les mises à niveau du plan.

La mise à niveau de plan pour avoir accès à plus de workers PHP n’aidera pas dans tous les cas. Si votre site tourne lentement parce que la base de données (MySQL) est occupée à insérer du contenu dans la base de données, il est peu probable que l’ajout de workers PHP supplémentaires accélère les performances de votre site.

Obtenir de l’aide

Si vous avez étudié les suggestions précédentes de cet article, que vous rencontrez encore des problèmes et que vous souhaitez obtenir de l’aide, l’étape suivante consiste à contacter notre équipe de support. Cependant, avant d’entamer une conversation avec notre équipe d’assistance, nous vous prions de rassembler autant d’informations que possible.

  • Lancez l’importation et indiquez combien de temps il faut pour que le processus échoue. Si le processus échoue après 1 minute, il est probable que vous rencontriez un timeout HTTP. S’il échoue après 5 minutes, il est probable que vous rencontriez un timeout PHP. S’il échoue à un autre moment, il est probable que vous rencontriez une autre limite ou une autre erreur et que vous ne voyiez pas réellement de timeout.
  • Vérifiez les logs d’erreurs au moment de l’échec de l’importation et voyez si une erreur a été enregistrée à ce moment là.
  • Faites une capture d’écran du message d’erreur ou de la page d’erreur que vous observez.
  • Rédigez une description concise du type de fichier que vous essayez d’importer, comment le fichier a été créé, ce qu’il contient, les outils utilisés pour créer le fichier et exécuter l’importation, et l’erreur que vous recevez.

Une fois que vous aurez recueilli ces informations, ouvrez un ticket avec l’équipe de support de Kinsta. Cependant, veuillez noter que nous ne pouvons pas garantir que nous serons en mesure de vous aider à faire fonctionner chaque importation avec succès.

Prochaines étapes – Processus de développement local

Si l’exécution de l’importation dans l’environnement de Kinsta n’est pas possible, l’étape suivante serait de développer un nouveau workflow pour le processus d’importation où l’importation est exécutée dans un environnement de développement local. Veuillez noter qu’un développeur devra être impliqué dans ce processus pour s’assurer qu’aucune donnée n’est perdue et que la base de données de votre site n’est pas endommagée.

En général, le processus consiste à mettre en place une copie de votre site dans un environnement de développement local où vous pouvez contrôler toutes les limites de timeout. Terminez ensuite l’importation dans cet environnement local. Une fois l’importation terminée, exportez une copie de la base de données WordPress ou des tables de base de données mises à jour depuis votre environnement local. Créez ensuite une sauvegarde de votre site Web en production, déposez la base de données (ou les tables affectées) de votre site Web en production, et importez la ou les bases de données exportées depuis votre environnement local.

14
Partages