Maison > Article > développement back-end > Diagnostiquer les problèmes de performances de WordPress avec de nouvelles reliques
Ce tutoriel poursuit ce que nous avons commencé avec la surveillance des performances de WordPress avec New Relic. Ici, je vais vous fournir un aperçu conceptuel des performances de WordPress et vous guider dans la vérification des performances de votre propre site à l’aide de New Relic.
Si vous venez ici du didacticiel Optimisation de WordPress avec Varnish et W3 Total Cache, alors vous disposez déjà d'une base WordPress très optimisée. Sinon, vous voudrez peut-être revenir en arrière et consulter l'article.
WordPress est un puissant système de blogs open source qui peut prendre en charge les petits blogs personnels et les grands sites Web des principales organisations médiatiques. Mais bien faire fonctionner WordPress et le faire évoluer avec succès et de manière rentable nécessite beaucoup de complexité.
Le service de surveillance des performances de New Relic constitue un excellent moyen de garantir que votre configuration WordPress continue de fonctionner de manière fluide et efficace.
Remarque : New Relic prévient qu'il est préférable d'utiliser son service pour optimiser WordPress sur un serveur dédié, plutôt que sur un serveur virtuel ou partagé (comme ceux proposés par de nombreux fournisseurs basés sur le cloud). Si vous utilisez WordPress sur un hébergement partagé, New Relic peut ne pas vous être aussi utile que pour un site Web fonctionnant sur un serveur dédié.
Si vous souhaitez en savoir plus sur New Relic avant de plonger dans ce guide de performances, Tuts+ propose une variété d'articles sur leurs services.
En 2013, Frederick Townes, le créateur du plugin WordPress gratuit W3 Total Cache, a écrit un article de blog pour New Relic décrivant les aspects de performances que nous devons prendre en compte : Optimiser les performances de WordPress avec New Relic. C’est un bon résumé et je vais l’examiner.
Townes met en évidence les domaines essentiels sur lesquels nous devons nous concentrer :
1. Performances du disque. Les disques locaux non partagés offrent toujours les performances les plus cohérentes et les plus fiables. Par exemple, utiliser une console avec un disque SSD ou un disque dur haute vitesse est idéal.
2. Cache de requêtes MySQL. Le cache de requêtes enregistre les résultats des requêtes de base de données courantes et peut renvoyer les résultats immédiatement sans exécution répétée. Townes recommande d'exécuter MySQLTuner pour optimiser la configuration de la base de données.
3. Utilisation des requêtes par thèmes et plugins WordPress. WordPress fonctionne correctement avec la configuration, mais lorsque nous ajoutons des plugins et des thèmes tiers, nous pouvons rencontrer divers codes d'erreur qui entraînent des problèmes de performances.
4. Taille du fichier des thèmes et plugins WordPress. Réduire la taille et le nombre de fichiers (et donc les transactions HTTP) peut avoir un impact énorme sur l'expérience du site Web de l'utilisateur. Malheureusement, toutes les feuilles de style en cascade (CSS) ou JavaScript (JS) ne peuvent pas être facilement intégrées et minimisées.
5. PHP optimisé, relativement lent. Une version plus rapide de PHP (telle que HHVM) pourrait fonctionner pour WordPress à l'avenir, mais je comprends qu'elle n'est pas encore stable pour cette tâche. Pendant ce temps, Townes propose une série de suggestions : réduisez l'empreinte mémoire de votre script, utilisez le chargement automatique, utilisez la mémoire, évitez les boucles, réduisez le temps d'exécution, minimisez le nombre de fichiers ouverts pour réduire les appels de disque et l'utilisation de la mémoire, et utilisez include
和 require
而不是 include_once
和 require_once
.
6. Utilisez Opcode Caching, tel qu'APC, un framework de mise en cache open source pour le code PHP. "APC conserve en mémoire une version interprétée (exécutable) du code afin que les requêtes qui lui sont adressées n'aient pas besoin d'être réinterprétées", a déclaré Townes
.« Le cache d'objets de WordPress est l'endroit où une grande partie de la magie se produit. WordPress génère divers groupes d'objets lors du traitement des demandes de page. Ces groupes servent à plusieurs fins et sont très importants en fonction de la façon dont vous utilisez WordPress. Par exemple, en utilisant Memcached ou le stockage Backend APC. persiste les objets pour obtenir des améliorations de performances. »
W3 Total Cache de Townes implémente cela au niveau du cache de page, permettant à PHP de continuer à générer des parties du contenu d'une page donnée, tandis que des parties plus grandes de la page qui n'ont pas changé sont mises en cache et non régénérées.
"W3TC vous permettra de choisir un magasin de données autre que MySQL, tel que Memcached, qui est conçu pour un accès haut débit à partir de plusieurs serveurs d'applications. Par conséquent, chaque demande de page n'a pas besoin d'obtenir des informations sur le visiteur ou d'autres personnes correspondantes. Informations sur les éléments dynamiques, MySQL est désormais capable de se concentrer (et d'ajuster) uniquement les parties dynamiques du modèle."
Townes déclare : « La mise en cache des fragments réduira votre temps d'exécution de plusieurs ordres de grandeur. »
7. Utilisez la mise en cache des pages. La technique la plus utile pour faire évoluer un site Web typique est la mise en cache des pages. Au lieu d'accéder à l'intégralité de la pile (WordPress, thèmes, plugins, HTML et MySQL) à chaque requête de page, nous récupérons le HTML statique du cache Web (généralement de la mémoire). La mise à l’échelle du trafic sur un site WordPress non mis en cache peut l’arrêter en quelques secondes, tandis que la mise à l’échelle du trafic sur des fichiers HTML pré-écrits dans le cache mémoire peut évoluer massivement.
Townes déclare : « Un proxy inverse fournit généralement un cache entre une application Web et l'Internet public. Son objectif est de soulager la charge sur le serveur Web derrière elle. Les proxys inverses sont optimisés pour renvoyer le contenu généré par l'application sous-jacente. Nginx et même Apache peuvent être configurés pour fournir une fonctionnalité de proxy inverse.
J'utilise le plus souvent Varnish avec Apache et W3 Total Cache pour étendre WordPress. Si ces configurations vous intéressent, consultez : Optimisation de WordPress avec Varnish et W3 Total Cache (Tuts+).
8. Les réseaux de diffusion de contenu (CDN) sont des services de mise en cache basés sur le cloud pour les fichiers et médias fréquemment utilisés. Townes déclare : « Avec un CDN, peu importe l'endroit où votre site Web est hébergé. Si vos visiteurs se trouvent ailleurs dans le monde, le CDN mettra en cache le contenu à proximité d'eux, réduisant ainsi le temps de chargement global des pages de votre site Web.
Maintenant que nous comprenons certains concepts clés pour que WordPress fonctionne correctement, voyons comment New Relic peut nous aider.Surveillez WordPress avec New Relic
New Relic fournit une surveillance complète des performances de la pile (expérience de l'utilisateur final) et fournit également une surveillance détaillée du serveur. "New Relic facilite la communication de ce qui se passe dans votre environnement", a déclaré Townes
.
Lorsque vous exécutez New Relic sur un serveur, vous pouvez obtenir des graphiques et des statistiques détaillés de surveillance des performances sur le serveur et PHP, notamment : le temps de réponse, le score Apdex (rapport entre le temps de réponse satisfaisant et le temps de réponse insatisfaisant), le débit (requêtes) par minute. ), les transactions réseau telles que les requêtes API tierces, les taux d'erreur, les événements récents et les informations sur le serveur.En allant encore plus loin, New Relic Browser surveille les données du cycle de vie complet de la page, bien au-delà du chargement initial de la page. Pour chaque chargement de page d'utilisateur final, New Relic Browser capture :
Je couvre plus en détail le navigateur New Relic dans la surveillance frontale avec le navigateur New Relic (Tuts+).
New Relic Synthetics vous permet de tester régulièrement votre site Web depuis n'importe où dans le monde, vous avertissant immédiatement en cas de problème. Je couvrirai les synthétiques dans un prochain didacticiel, alors visitez ma page Tuts+ Instructor pour voir quand il sera publié.
Utilisez New Relic avec W3 Total Cache
Dans la console d'administration WordPress, cliquez sur
Performance > Surveillance. Cliquez pour créer un compte gratuit. Copiez les détails de l'API et de la clé de licence dans le panneau des paramètres W3 Total Cache ci-dessous :
L'activation de New Relic sur le serveur peut être surveillée à partir du tableau de bord du W3TC comme indiqué ci-dessous :
Pour plus de détails, vous pouvez visiter le site New Relic et vous connecter à votre compte.
Surveillez vos performances WordPress
Évaluer les performances du serveur
L'onglet Processus affiche l'utilisation de la mémoire et du processeur pour chaque processus :
Vous pouvez également consulter l'historique des alertes indiquant les signaux d'alarme dans les performances de votre site Web :
New Relic propose trois méthodes principales pour évaluer les performances de WordPress :
1. Apdex. New Relic utilise Apdex Ratings pour vous aider à évaluer les performances de votre application Wordpress pour les utilisateurs finaux par rapport aux mesures standard de l'industrie. Cela vous aide à fournir de meilleures données pour le dépannage et une compréhension plus claire du pourcentage d’utilisateurs frustrés ou satisfaits. Les évaluations Apdex fournissent également un contexte plus spécifique qu'une plainte générique « le site est lent », qui peut même ne vous avertir que quelques heures après l'incident. Apdex vous offre également un moyen plus objectif de mesurer ce que les utilisateurs réels pensent des améliorations de performances.
2. Performances MySQL. Les plugins et thèmes WordPress peuvent abuser de votre base de données MySQL. Vous pouvez découvrir la cause du problème en consultant Slow SQL dans New Relic. Par exemple, vous constaterez peut-être que la sélection sur wp_terms des catégories et des balises peut prendre jusqu'à 20 % du temps total de la base de données. Alternativement, vous remarquerez peut-être que les instructions INSERT lentes pourraient être améliorées avec des index correctement placés ou des requêtes affinées.
3. Surveillez les performances des plug-ins et des API tiers. Il est très facile d’utiliser des plugins de réseaux sociaux, des plugins de surveillance et d’autres widgets sympas dans WordPress, mais il n’est peut-être pas évident de savoir comment ces dépendances tierces affectent votre blog ou votre site Web de marketing de blog. New Relic vous permet de « regrouper » les appels de service externes pour une vue plus complète, et vous pouvez également surveiller les temps de réponse de ces tiers dans chaque transaction Web capturée par New Relic.
Nous pouvons utiliser le navigateur New Relic pour étudier les performances de WordPress plus en détail. Vous souhaiterez rechercher spécifiquement le code de nos thèmes et plugins qui pourrait avoir un impact négatif sur les performances.
Le tableau de bord vous donne un aperçu des temps de chargement des pages répartis par Apdex et débit :
Voici une vue agrandie de mon score Apdex au cours des dernières 24 heures :
Vous pouvez également visualiser les performances par page vue :
Lorsque vous approfondissez l'analyse, vous pouvez voir les performances des fichiers individuels chargés par votre site Web. Vous devez rechercher tout fichier de thème ou de plugin qui prend un temps suspect :
New Relic Server Monitoring peut également suivre les performances des requêtes MySQL :
Vous pouvez approfondir pour plus de détails :
Et diagnostiquer les requêtes les plus lentes :
Ceci est particulièrement utile pour identifier les requêtes lentes créées par un mauvais code de plugin.
Le suivi de session vous permet de comprendre l'ensemble du cycle de vie d'une page Web, y compris les interactions des utilisateurs, le chargement des ressources, les iframes, le temps passé à attendre les appels Ajax, les erreurs, etc., en suivant l'expérience réelle des vrais utilisateurs du début à la fin.
Le traçage identifie non seulement le problème, mais vous montre également les actions effectuées par l'utilisateur avant et après l'erreur.
Vous trouverez ci-dessous une analyse détaillée et approfondie de votre séance. Cela permet d'évaluer les performances du code dans les thèmes et les plugins :
Le suivi de session vous aide à comprendre :
Vous pouvez voir exactement ce qui se passe dans le navigateur d'un utilisateur spécifique à un moment donné. Le suivi de session vous offre une visualisation détaillée et intuitive de tous les événements d'une session utilisateur, ce qui peut vous aider à identifier les zones problématiques et à identifier facilement les solutions. En savoir plus sur l'utilisation du suivi de session.
Avec les pages Ajax, vous pouvez voir ce qui se passe avec n'importe quel appel interactif sur cette page, aidant ainsi à identifier les problèmes d'expérience utilisateur lorsque les appels prennent du temps ou échouent :
Veuillez noter que New Relic Browser n'enregistre pas automatiquement les données Ajax. Vous devez l'activer pour chaque application dans la zone des paramètres de New Relic. En savoir plus sur le tableau de bord Ajax.
Le tableau de bord des erreurs JavaScript du navigateur vous permet de voir rapidement quelles erreurs se produisent sur quels navigateurs dans le JavaScript de production en temps réel au fil du temps. Vous pouvez enquêter sur les erreurs en fonction du nombre de fois où chaque erreur se produit et du nombre de chargements de page uniques qui rencontrent l'erreur.
Cela vous permet d'identifier les bugs qui ont un impact sur l'expérience utilisateur réelle sur votre site ; c'est un moyen particulièrement puissant de connaître les bugs JavaScript qui n'apparaissent pas dans vos propres tests ou sur les navigateurs que vous avez peut-être exclus de votre banc de test.
WordPress auto-hébergé nécessite un haut degré de compétences techniques. Si vous ne le souhaitez pas, l'hébergement géré est une meilleure option. Beaucoup d’entre eux utilisent New Relic en interne pour optimiser leurs sites Web, comme Page.ly.
Il faut du temps pour se plonger dans New Relic, mais les résultats en valent la peine. À l’aide de cet outil, vous pouvez examiner l’intérieur de votre pile WordPress pour identifier rapidement les problèmes qui doivent être résolus.
Si vous êtes auto-hébergeur, les services de New Relic offrent un moyen incroyablement puissant d'en apprendre davantage sur votre propre environnement d'hébergement ainsi que sur votre pile, vos thèmes et vos plugins WordPress, et d'apprivoiser la bête des performances.
Pendant votre processus de déploiement (et pendant votre processus de développement, si vous créez vos propres thèmes et plugins), vous souhaiterez certainement utiliser New Relic pour mieux comprendre votre site.
Bien que vous puissiez utiliser New Relic Lite pour toujours, une fois la période d'essai de deux semaines terminée, vous devrez peut-être passer au forfait Pro (149 $/mois) pour maintenir le même niveau de service. New Relic Browser, Synthetics et Insight ont tous leurs propres structures de prix. Pour en savoir plus, visitez le site Web de New Relic.
Si vous avez des questions ou des corrections, veuillez les laisser dans les commentaires. Si vous souhaitez continuer à suivre mes futurs tutoriels Tuts+ et autres séries, veuillez visiter ma page instructeur ou suivre @reifman.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!