Le site cloud est lent
Cet article fournit des recommandations sur la manière de rendre votre site d’infrastructure cloud Adobe Commerce plus performant sous des charges de trafic élevées et de réduire cette charge.
Versions et éditions affectées
- Adobe Commerce sur l’infrastructure cloud, toutes les versions
Problème
Étapes à reproduire
- Visitez votre boutique Adobe Commerce.
- Parcourez une page de catégorie.
- Ajoutez un produit au panier.
Résultat attendu
Le site est réactif et l’ajout d’un produit au panier est rapide.
Résultat réel
Le site est lent ou les pages de catégorie sont rapides, mais la page de panier est lente.
Étapes et solutions de débogage
Procédez comme suit pour déterminer la raison de la lenteur des performances et la corriger. Vous pouvez passer aux premières et deuxième étapes, mais vous ne pouvez bloquer les adresses IP que si l’optimisation des paramètres du cache ne vous aide pas.
- Vérifiez le taux d’accès au cache des pages à trafic élevé et réduisez la quantité de données lourdement mises à jour.
- Vérifiez le taux d’accès global au cache du site et la configuration générale du cache/Fastly.
- Identifiez les clients web à l’origine de la charge de serveur élevée et bloquez les adresses IP à l’origine de la charge élevée.
Les paragraphes suivants fournissent des détails supplémentaires pour chaque étape.
Étape 1 : vérifiez le taux d’accès au cache pour les pages à trafic élevé.
La première étape pour corriger un site enlisé par un trafic important consiste à s’assurer que les pages comportant le trafic le plus important, comme la page d’accueil du magasin et les pages de catégories de niveau supérieur, sont correctement mises en cache.
Vous pouvez connaître les taux d’accès au cache de ces pages en examinant les en-têtes HTTP X-Cache
à l’aide de cURL, comme décrit dans la section Vérification du cache à l’aide de cURL de la documentation Fastly. Vous pouvez également vérifier les mêmes en-têtes à l’aide de l’onglet réseau de la barre d’outils du développeur de votre navigateur web préféré.
Respecte généralement très bien les en-têtes de réponse provenant de l’application. Toutefois, si tous les en-têtes sont définis sur "ne pas mettre en cache" et que la page "arrive à expiration dans le passé", Fastly ne peut pas mettre en cache la page.
Dépannage des pages à trafic élevé
Si le taux d’accès de la page d’index est faible, vous pouvez le corriger en réduisant la quantité de données lourdement mises à jour présentes sur cette page.
Étape 2 : Vérifier le taux d’accès global au cache du site
Pour vérifier le taux d’accès global au cache :
-
Obtenez des informations d’identification rapidespour votre environnement Adobe Commerce sur l’infrastructure cloud.
-
Exécutez la commande cURL Linux/macOS suivante pour vérifier le taux d’accès à votre site au cours des 30 dernières minutes, en le remplaçant par les valeurs de vos informations d’identification Fastly :
curl -H "Fastly-Key: " https://api.fastly.com/stats/service//field/hit_ratio?by=minute | json_pp
Vous pouvez également vérifier les taux d’accès historiques sur le dernier jour ou mois en modifiant l’option de requête de période de
?by=minute
à?by=hour
ou?by=day
. Pour plus d’informations sur l’obtention de statistiques de mise en cache rapides, voir Options de requête dans la documentation Fastly.L’option
| json_pp
imprime correctement la sortie de la réponse JSON à l’aide de l’utilitairejson_pp
. Si vous obtenez l’erreur ''json_pp introuvable', installez l’utilitairejson_pp
ou utilisez un autre outil de ligne de commande pour la jolie impression JSON. Vous pouvez également supprimer le paramètre| json_pp
et exécuter à nouveau la commande . Le résultat de la réponse JSON n’est pas formaté, mais vous pouvez l’exécuter via un embelleur JSON pour le nettoyer.
Un taux d’accès supérieur à 0,90 ou 90 % indique que le cache de la page entière fonctionne.
Un taux d’accès inférieur à 0,85 ou 85 % peut indiquer un problème de configuration du site, ou vous pouvez avoir installé une extension tierce qui n’autorise pas la mise en cache de son contenu.
Dépannage du taux d’accès global au cache
- À l’aide des statistiques de taux d’accès horaire et quotidien, identifiez le moment où le taux d’accès a commencé à diminuer. Si le taux d’accès a soudainement chuté au moment où vous avez déployé une modification sur votre site, envisagez de revenir en arrière jusqu’à ce que le chargement du site diminue.
- Vérifiez la configuration dans l’administrateur Commerce, sous Magasins > Configuration > Avancé > Système > Cache de page complet. Assurez-vous que la valeur TTL pour le contenu public n’est pas définie trop bas.
- Assurez-vous d’avoir téléchargé les fragments de code VCL.
- Si vous utilisez des fragments de code VCL personnalisés, déboguez-les pour une utilisation correcte des actions "pass" ou "tuyau" : ils doivent être utilisés avec précaution et au moins utilisés avec une condition d’un certain type. Pour plus d’informations, voir Fragments de code VCL personnalisés Fastly dans notre documentation destinée aux développeurs.
Étape 3 : Identifier les sites web à l’origine de la charge élevée du serveur
Vous pouvez utiliser l’une des méthodes suivantes pour obtenir des informations sur les adresses IP qui accèdent à votre boutique Adobe Commerce.
- Vérifiez les journaux d’accès HTTP par le biais d’une session SSH.
- Contactez l’assistance d’Adobe Commerce pour demander une liste des adresses IP qui entraînent une charge importante sur le site.
Vérification des journaux d’accès HTTP
Pour afficher le journal des accès à votre site, exécutez la commande suivante à partir de votre environnement de développement local :
magento-cloud log access
Afficher d’autres lignes avec la fonction
--lines
par exemple :
magento-cloud log access --lines=500
Vous pouvez afficher ce journal et vérifier si une grande partie des demandes provient d’une adresse IP spécifique. Une autre méthode consiste à utiliser awk
, sort
et uniq
pour comptabiliser automatiquement les adresses IP les plus fréquentes dans le journal, comme suit :
magento-cloud log access --lines 2000 | awk '{print $1}' | sort | uniq -c | sort
-nr
Si la variable
magento-cloud log
ne fonctionne pas, vous pouvez vous connecter au serveur distant avec SSH et vérifier le fichier journal à l’adresse /var/log/access.log
.
Après avoir identifié les adresses IP à l’origine d’une charge importante du serveur, vous pouvez les bloquer en configurant une liste bloquée IP à partir du panneau d’administration de Commerce, sous Magasins > Configuration > AVANCÉ > Système > Cache de page complet > Configuration rapide > Blocking}.
Si vous ne pouvez pas accéder à votre administrateur en raison d’une charge importante, vous pouvez utiliser l’API Fastly pour configurer les règles de blocage :
-
Créez l’ACL comme décrit dans le document Utilisation des ACL à l’aide de l’API Fastly.
-
Dans la section
recv
, créez un extrait de code VCL avec le contenu suivant, en remplaçant ACL_NAME_GOES_HERE par le nom de l’ACL qui a été créé à l’étape précédente :code language-none if( req.http.Fastly-Client-IP ~ ACL_NAME_GOES_HERE ) { error 403 "Forbidden"; }
Pour plus d’informations sur le blocage des adresses IP, consultez le guide du module Fastly Adobe Commerce dans GitHub.