Ce didacticiel continue là où nous nous sommes arrêtés dans Utilisation de New Relic pour surveiller les performances de WordPress. Ici, je vais vous donner un aperçu conceptuel de la performance WordPress et vous guider à travers l'utilisation de New Relic pour examiner la performance de votre propre site..
Si vous êtes arrivé ici du didacticiel Optimisation de WordPress avec Varnish et W3 Total Cache, vous disposez déjà d’une fondation WordPress assez bien optimisée. Sinon, vous voudrez peut-être revenir en arrière et consulter cet article.
WordPress est un système de blogging open source puissant qui peut prendre en charge les blogs individuels de petite taille et les sites plus grands pour les grandes organisations de médias. Cependant, bien utiliser WordPress et le dimensionner avec succès et à un prix abordable nécessite beaucoup de sophistication..
Les services de surveillance des performances de New Relic constituent un excellent moyen de garantir le bon fonctionnement de votre configuration WordPress..
Remarque: New Relic avertit que ses services sont mieux utilisés pour optimiser WordPress sur des serveurs dédiés, et non sur des serveurs virtuels ou partagés, tels que ceux proposés par de nombreux fournisseurs basés sur le cloud. Si vous utilisez WordPress sur un hôte partagé, New Relic pourrait ne pas vous être aussi utile que pour les sites fonctionnant sur des serveurs dédiés.
Si vous souhaitez en savoir plus sur New Relic avant de plonger dans ce guide de performance, Tuts + propose une grande variété d'articles sur ses services..
En 2013, Frederick Townes, le créateur du plugin gratuit W3 Total Cache WordPress, a écrit un article sur New Relic décrivant les aspects de la performance à prendre en compte: Optimisation des performances de WordPress avec New Relic. C'est un excellent résumé que je vais revoir.
Townes met en évidence les principaux domaines sur lesquels nous devons nous concentrer:
1. Performance du disque. Un disque local non partagé donnera toujours les performances les plus cohérentes et les plus fiables. Par exemple, l’utilisation d’un hôte proposant des disques SSD ou des disques durs à haute vitesse est idéale..
2. Le cache de requêtes MySQL. Le cache de requêtes préserve les résultats des requêtes de base de données courantes et peut renvoyer les résultats immédiatement sans avoir à les exécuter à plusieurs reprises. Townes recommande d'utiliser MySQLTuner pour optimiser la configuration de votre base de données..
3. Utilisation des requêtes par vos thèmes et plugins WordPress. Par défaut, WordPress est configuré pour fonctionner correctement, mais à mesure que nous ajoutons des plugins et des thèmes tiers, nous pouvons nous heurter à de nombreux codes malveillants qui peuvent entraîner des problèmes de performances..
4. Taille du fichier de vos thèmes et plugins WordPress. La réduction de la taille et du nombre de fichiers (et donc des transactions HTTP) a un impact considérable sur l'expérience des utilisateurs de votre site. Malheureusement, toutes les feuilles de style en cascade (CSS) ou JavaScript (JS) ne peuvent pas être facilement consolidées et réduites au minimum..
5. Optimiser PHP, ce qui est relativement lent. Des versions plus rapides de PHP telles que HHVM pourraient convenir à WordPress dans le futur, mais j'ai lu que ce n'était pas encore stable pour cette tâche. En attendant, Townes propose une liste de suggestions: réduire l'encombrement de la mémoire de vos scripts, utiliser le chargement automatique, utiliser la mémorisation, éviter les boucles, réduire le temps d'exécution, réduire le nombre de fichiers ouverts pour réduire le nombre d'appels au disque et à l'utilisation de la mémoire, et utiliser comprendre
et exiger
plutôt que include_once
et Demandez une fois
.
6. Utilisation de la mise en cache opcode comme APC, un framework de cache en open source pour le code PHP. Selon Townes: "APC conserve la version interprétée (exécutable) de votre code en mémoire, de sorte que les requêtes qui en découlent ne doivent pas être réinterprétées."
"Le cache d'objets de WordPress est le lieu de la magie. Il existe différents groupes d'objets générés par WordPress lors du traitement des demandes de page. Ces groupes servent à de nombreuses fins et, selon l'utilisation que vous en faites, une amélioration très significative des performances est réalisé en stockant de manière persistante les objets en utilisant par exemple memcached ou les backend stores APC. "
Le cache total W3 de Townes l'implémente au niveau de la mise en cache de la page, permettant ainsi des scénarios dans lesquels des portions d'une page donnée peuvent toujours être générées par PHP alors que des portions plus importantes de la page qui sont inchangées sont mises en cache et ne sont pas régénérées..
"W3TC vous permettra de choisir un magasin de données autre que MySQL, tel que memcached, conçu pour un accès haute vitesse à partir de plusieurs serveurs d'applications. Ainsi, plutôt que chaque demande de page qui doit déjà extraire des informations respectives sur le visiteur ou d'autres éléments dynamiques, MySQL est maintenant capable de se concentrer (et d’être réglé) uniquement sur les parties dynamiques de vos modèles. "
Selon Townes, "la mise en cache par fragments réduira votre temps d'exécution de plusieurs ordres de grandeur".
7. Utilisation de la mise en cache des pages. La technique la plus bénéfique pour la mise à l'échelle d'un site Web typique est la mise en cache de pages. Plutôt que de toucher votre pile entière avec chaque demande de page (WordPress, Thème, Plugins, HTML et MySQL), nous récupérons simplement du code HTML statique dans le cache Web, souvent à partir de la mémoire. La mise à l'échelle du trafic sur un site WordPress non mis en cache peut l'enlever en quelques secondes, alors que la mise à l'échelle du trafic sur des fichiers HTML pré-écrits à partir d'un cache en mémoire est extrêmement évolutive..
Townes: "Les proxys inversés fournissent souvent une mise en cache située entre l'application Web et l'Internet public. Son objectif est d'alléger la charge des serveurs Web. Les proxys inverses sont optimisés pour restituer le contenu généré par l'application sous-jacente. Varnish, Nginx ou même Apache peut être configuré pour fournir une fonctionnalité de proxy inverse. "
J'utilise le plus souvent Varnish avec Apache et W3 Total Cache en combinaison pour mettre à l'échelle WordPress. Si ces configurations vous intéressent, consultez: Optimisation de WordPress avec Varnish et W3 Total Cache (Tuts +).
8. Réseaux de distribution de contenu (CDN) sont des services de mise en cache dans le cloud pour les fichiers et supports fréquemment utilisés. Townes déclare: "Avec un CDN, peu importe l'endroit où votre site est hébergé. Si vous avez des visiteurs dans le monde entier, le CDN met en cache le contenu qui se trouve à proximité et réduit la durée totale de chargement en secondes." pour votre site. "
Maintenant que nous connaissons certains des concepts clés pour assurer le bon fonctionnement de WordPress, voyons comment New Relic peut nous aider.
New Relic est un service de surveillance des performances qui fonctionne avec diverses technologies de serveur et de langage, y compris PHP, ce qui en fait un outil idéal pour optimiser WordPress..
New Relic fournit une surveillance des performances de la pile complète - l'expérience de l'utilisateur final - mais fournit également une surveillance détaillée du serveur. Selon Townes, "New Relic facilite la diffusion des événements dans votre environnement".
Lorsque vous exécutez New Relic sur votre serveur, vous pouvez obtenir des graphiques et des statistiques de suivi des performances détaillés concernant votre serveur et PHP, notamment: le temps de réponse, le score Apdex (le rapport temps de réponse satisfaisant sur temps de réponse insatisfaisant), débit (requêtes par minute) , transactions Web, par exemple Demandes d'API tierces, taux d'erreur, événements récents et informations sur le serveur.
Pour aller plus loin, le nouveau navigateur Relic surveille les données du cycle de vie d'une page complète, bien au-delà du chargement initial de la page. Pour chaque chargement de page d'utilisateur final, le nouveau navigateur Relic enregistre:
Vous pouvez afficher les données globalement sur tous les utilisateurs et les voir découpées en morceaux par page Web, navigateur, session utilisateur et emplacement..
J'ai couvert le nouveau navigateur Relic de manière plus complète dans la surveillance frontale avec le nouveau navigateur Relic (Tuts +).
New Relic Synthetics vous permet de mettre en place des tests réguliers de votre site à partir du monde entier pour vous avertir immédiatement des problèmes éventuels. Je parlerai de Synthetics dans un prochain tutoriel, alors visitez ma page d’instructeur Tuts + pour savoir quand il sera disponible..
J'ai expliqué le processus d'inscription et d'installation de l'intégration du service New Relic de W3 Total Cache dans ce tutoriel: Utilisation de New Relic pour surveiller les performances de WordPress (Tuts +).
Depuis votre console d'administration WordPress, cliquez sur Performance> Surveillance. Cliquez pour vous inscrire pour un compte gratuit. Copiez les détails de votre API et de votre clé de licence dans le panneau de paramètres W3 Total Cache ci-dessous:
L'activation de New Relic sur votre serveur permet la surveillance à partir du tableau de bord W3TC, comme indiqué ci-dessous:
Pour plus de détails, vous pouvez visiter le site Web de New Relic et vous connecter à votre compte..
À un haut niveau, la surveillance de New Relic Server vous donne un aperçu de l’utilisation du processeur, de la mémoire, des E / S disque et réseau, ainsi que des informations sur votre matériel et les processus les plus actifs. Cela peut vous donner une vue d'ensemble de ce qui se passe avec votre configuration et vous alerter de tout problème important:
L'onglet Processus vous indique l'utilisation de la mémoire et de la CPU de chaque processus:
Vous pouvez également voir l'historique des alertes, indiquant des drapeaux rouges indiquant les performances de votre site:
New Relic est utile pour évaluer les performances de WordPress de trois manières principales:
1. Apdex. New Relic utilise la notation Apdex pour vous aider à évaluer les performances de votre application Wordpress pour vos utilisateurs finaux, conformément à une mesure standard de l'industrie. Cela vous aide à fournir de meilleures données pour le dépannage et à mieux comprendre le pourcentage de vos utilisateurs frustrés ou satisfaits. Le score Apdex fournit également un contexte plus spécifique qu'une plainte générale «le site est lent» qui risque de ne pas vous parvenir avant des heures après l'incident. Apdex vous donne également un moyen plus objectif de mesurer dans quelle mesure les améliorations de vos performances sont ressenties par vos utilisateurs réels..
2. Performances MySQL. Les plugins et les thèmes Wordpress peuvent abuser de votre base de données MySQL. Vous pouvez identifier ceux qui causent des problèmes en consultant le SQL lent dans New Relic. Par exemple, vous remarquerez peut-être que les sélections sur wp_terms, utilisées pour les catégories et les balises, occupent peut-être 20% du temps total de votre base de données. Vous pouvez également remarquer que les instructions INSERT lentes peuvent être améliorées avec un index bien placé ou une requête affinée..
3. Surveillance des performances des plug-ins tiers et des API. L'utilisation de plugins de médias sociaux, de plugins de surveillance et d'autres widgets géniaux est très simple dans WordPress, mais l'impact de ces dépendances tierces sur votre blog ou votre site marketing n'est pas toujours évident. New Relic vous permet de voir les appels de service externes «cumulés» pour une vue plus globale, et vous pouvez également surveiller les temps de réponse de ces tiers dans chacune des transactions Web capturées par New Relic..
Nous pouvons utiliser le navigateur de New Relic pour étudier plus en détail les performances de WordPress. Vous voulez particulièrement rechercher le code de nos thèmes et plug-ins qui peut avoir un impact négatif sur les performances.
Le tableau de bord vous donne un aperçu du temps de chargement des pages, ventilé par Apdex et par débit:
Voici un aperçu de mon score Apdex au cours des dernières 24 heures:
Vous pouvez également afficher les performances par affichage de page:
Lorsque vous explorez en aval, vous pouvez voir les performances des fichiers individuels chargés par votre site. Vous voudrez rechercher tous les fichiers de thèmes ou de plug-ins qui prennent une quantité de temps suspecte:
La nouvelle surveillance du serveur Relic peut également suivre les performances de vos requêtes MySQL:
Vous pouvez accéder à des détails supplémentaires:
Et diagnostiquez les requêtes les plus lentes:
Cela peut être particulièrement utile pour identifier les requêtes lentes créées par un code de plugin incorrect.
Les traces de session vous donnent une visibilité sur l'ensemble du cycle de vie d'une page Web, y compris les interactions utilisateur, le chargement d'actifs, les iframes, le temps d'attente pour les appels Ajax, les erreurs et davantage de suivi de l'expérience réelle d'un utilisateur réel du début à la fin..
Non seulement les traces identifient les problèmes, mais elles peuvent aussi vous montrer ce que l'utilisateur a fait avant et après que l'erreur se soit produite..
Voici un aperçu détaillé de vos sessions. Cela peut aider à évaluer les performances du code dans les thèmes ainsi que dans les plugins:
Les traces de session vous aident à comprendre:
Vous pouvez voir exactement ce qui se passait dans le navigateur d'un utilisateur particulier à un moment donné. Les traces de session vous permettent une visualisation détaillée et intuitive de tous les événements de la session de l'utilisateur. Elles peuvent également vous aider à identifier les problèmes et à identifier facilement les solutions. En savoir plus sur l'utilisation des traces de session.
La page Ajax vous permet de voir ce qui se passe avec les appels interactifs que vous avez sur la page, en aidant à identifier les problèmes liés à l'expérience de vos utilisateurs lorsque vous avez des appels fastidieux ou en échec:
Notez que New Relic Browser n'enregistre pas automatiquement les données Ajax. Vous devez l'activer par application dans la zone des paramètres de la nouvelle relique. 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 dans votre code JavaScript de production en direct au fil du temps, sur quels navigateurs. Vous pouvez rechercher les erreurs en fonction du nombre d'occurrences de chacune d'elles et du nombre de chargements de pages uniques ayant rencontré cette erreur..
Cela vous permet d'identifier les erreurs qui ont une incidence sur l'expérience des utilisateurs réels sur votre site. c'est un moyen particulièrement puissant d'apprendre les erreurs JavaScript qui n'apparaissent pas dans vos propres tests ou sur les navigateurs que vous auriez peut-être exclus de votre banc d'essai.
WordPress auto-hébergé requiert un niveau élevé de compétences techniques. Si vous ne le souhaitez pas, les hôtes gérés sont une meilleure alternative. Nombre d’entre eux utilisent New Relic en interne pour optimiser leurs propres sites, par exemple, Page.ly.
Plonger plus profondément dans New Relic nécessite un investissement de temps, mais les résultats en valent la peine. Avec cet outil, vous pouvez voir à l'intérieur de votre pile WordPress pour identifier rapidement les problèmes à résoudre..
Si vous vous hébergez vous-même, les services de New Relic peuvent s'avérer un moyen extrêmement puissant de voir dans votre propre environnement d'hébergement, votre pile WordPress, vos thèmes et vos plugins, et d'apprivoiser la performance..
Dans votre processus de déploiement (et votre processus de développement si vous construisez vos propres thèmes et plugins), vous voudrez certainement explorer votre site avec New Relic..
Bien que vous puissiez utiliser New Relic Lite à tout jamais, une fois votre période d'essai de deux semaines expirée, vous voudrez probablement passer au plan Pro (149 $ / mois) pour conserver les mêmes niveaux de service. New Relic Browser, Synthetics et Insight ont leurs propres structures de prix. Pour en savoir plus, visitez le site Web de New Relic..
Si vous avez des questions ou des corrections, merci de les poster dans les commentaires. Si vous souhaitez suivre mes futurs tutoriels Tuts + et d'autres séries, visitez la page de mon instructeur ou suivez @reifman..