


Premiers pas avec la surveillance et l'optimisation des performances ASP.NET
Points clés :
Les métriques d'infrastructure ne sont plus efficaces que lorsqu'elles sont liées aux métriques d'application.
La clé d’une optimisation efficace des performances réside dans les données de performances.
Certains outils APM fournissent une prise en charge prête à l'emploi pour ASP.NET, donc démarrer avec ASP.NET nécessite une configuration initiale minimale.
Les outils d'analyse de code donnent la vue la plus détaillée des performances du programme.
L'outil d'analyse léger donne une vue en temps réel des performances des pages Web et peut être utilisé dans les environnements de développement et de production.
"Cette page Web s'ouvre trop lentement !" Cette plainte concernant les sites Web est fréquente et courante, d'autant plus que les applications Web ont commencé à remplacer progressivement les applications de bureau. Bien que le Web apporte des fonctionnalités idéales telles que la diffusion mondiale, il apporte également des défis correspondants au niveau des performances.
Principes de base de la collecte et de l'utilisation des données
L'utilisateur vous a donné l'URL d'une page Web « lente », alors que devez-vous faire ? D’où vient le problème de lenteur d’ouverture des pages Web ? Était-ce si lent depuis le début ? Est-ce lent pour tous les utilisateurs ? De nombreux problèmes comme ceux-ci doivent être résolus pour résoudre le problème de la lenteur d'ouverture des pages Web et garantir qu'elles ne ralentissent plus après une semaine.
Bien que vous puissiez rechercher des informations sur l'optimisation des performances sur Internet, elles portent généralement sur des sujets spécifiques tels que Jit, le garbage collection, l'optimisation des requêtes SQL, les pièges ORM, etc. Compte tenu de la perspective alléchante de mise en œuvre d’optimisations, une question se pose : comment savez-vous que la méthode d’optimisation choisie produira réellement de bons résultats pour votre problème de performances actuel ?
Il ne fait aucun doute qu’il manque quelque chose dans ce travail. Nous avons besoin de moyens pour trouver des problèmes de performance de manière durable. En utilisant cette approche, nous pouvons identifier les parties les plus lentes du système et disposer de mesures tangibles pour étayer notre diagnostic des problèmes de performances. Une fois que nous comprenons où se situent les problèmes de performances, nous pouvons déterminer si des améliorations des performances sont nécessaires et expliquer tout cela aux parties prenantes.
Pour les problèmes de performances mentionnés ci-dessus, une identification précise est un moyen plus efficace de les résoudre. Le problème ne vient peut-être pas en premier lieu d’un chargement lent de la page Web. En présence de délais d'attente (par exemple, l'équilibreur de charge peut attendre plusieurs secondes avant de gérer la connexion), il est impossible de savoir s'il s'agit d'un problème de blocage ou d'un problème de temps de réponse lent, car les deux problèmes provoquent la même chose. Le résultat est un temps mort. Cela nécessite des données pour trouver la véritable cause du problème.
Pour illustrer l'importance d'identifier avec précision les problèmes de performances, voici quelques points de dépannage possibles qui entraînent une réponse lente dans les applications Web :
JavaScript répond lentement ;
Le blocage se produit lors du chargement des ressources
Il y a un proxy côté client
Problème DNS
Problème de FAI ou de réseau
Commutateurs et routeurs
Équilibreur de charge ;
Code d'application (y compris les bibliothèques de logiciels tiers)
; Serveur HTTP (par exemple parfois ASP.net ou IIS
) Services tiers, tels que : prestataires de services de paiement, prestataires de services de cartes, etc.
; Sous-systèmes, notamment : SQL Server, Redis, Elasticsearch, Rabbit MQ, etc.
Des points de dépannage de performances supplémentaires peuvent être répertoriés, en fonction de la complexité et de la taille du système à résoudre. Comment pouvez-vous diagnostiquer les problèmes de performances alors qu’un si grand nombre de composants système peuvent affecter les problèmes d’optimisation des performances ? La réponse peut se résumer en un mot : données. Vous avez besoin de données pertinentes et significatives sur chaque composant du système. Pour le problème de la lenteur de réponse des applications Web, les données peuvent prouver si chaque composant du système a un impact sur le problème ou est totalement hors de propos.
Avec les données en main, vous pouvez commencer à extraire les points de dépannage de la liste ci-dessus en fonction de vos idées d'analyse, ce qui s'apparente à une recherche dans un arbre de tri. Chaque fois que vous descendez d'un niveau dans l'arborescence, vous vous rapprochez des détails et de l'essence du problème de performances. Vérifiez si le problème de performances existe dans :
. Côté client, côté serveur ou quelque part entre les deux ?
JavaScript lent, rendu ou blocage de ressources ?
Équilibreur de charge, serveur Web, sous-système ou logiciel tiers ?
Au fur et à mesure que vous descendez de niveau en niveau dans un tel arbre, les problèmes de performances deviennent de plus en plus évidents. Pour chaque niveau de dépannage, les données requises pour localiser les problèmes de performances doivent correspondre à la précision du problème correspondant. A cette époque, il est nécessaire d'utiliser des outils tels que des outils d'analyse des performances ou des plans d'exécution SQL.
Afin d’utiliser efficacement le temps, il est nécessaire de réitérer la loi d’Amdahl :
Quelle que soit l’ampleur de l’amélioration d’une tâche, les parties de la tâche qui ne bénéficient pas de l’amélioration limitent les accélérations théoriques des tâches.
Par exemple, dans une requête Web, on suppose que 100 millisecondes de temps de traitement du serveur et 5 secondes de temps de requête SQL sont nécessaires. Même si vous pouvez optimiser le temps de traitement du serveur à moins de 1 milliseconde, l'amélioration du temps de réponse global est faible, de 5,1 secondes à 5 secondes. Les 5 secondes nécessaires à l'amélioration du traitement SQL constituent l'optimisation présentant le plus grand gain potentiel.
Problèmes architecturaux
Cette méthode descendante de clarification des problèmes d'optimisation couche par couche a un bon effet sur les problèmes d'optimisation limités à une seule page. Alors, quel est l’effet lorsqu’il est appliqué à des problèmes d’optimisation qui s’étendent sur plusieurs pages ? Par exemple, le problème de l'ouverture lente par intermittence de certaines pages est dû au fait que le sous-système n'est pas en mesure de suivre le rythme de travail global ou au fait qu'il existe un ancien commutateur réseau dans le système qui peut ne plus fonctionner après le redémarrage.
Dans ce cas, l’approche de surveillance centrée sur les applications montre ses limites. Cela nécessite davantage de mesures au niveau logiciel et matériel pour évaluer chaque composant du système.
Au niveau matériel, les premières choses qui viennent à l’esprit sont les serveurs web et les serveurs de bases de données, mais ils ne représentent que la pointe de l’iceberg. Tous les composants matériels du système doivent être identifiés et surveillés. Cela inclut : les serveurs, les commutateurs réseau, les routeurs, les équilibreurs de charge, les pare-feu, les SAN, etc.
Étant donné que le travail habituel de l’administrateur système consiste à surveiller le matériel, tous les indicateurs ci-dessus peuvent être évidents pour l’administrateur système. Mais voici une mise en garde importante : la plupart de ces mesures matérielles sont inutiles du point de vue des performances si elles sont traitées séparément des mesures logicielles. En d’autres termes, les indicateurs ne peuvent fonctionner de manière optimale que s’ils sont placés dans un environnement approprié.
Par exemple, dans certains cas, il peut être tout à fait normal que l'utilisation du processeur soit en moyenne de 50 % sur un serveur de base de données, mais pour d'autres serveurs, cela constitue une bombe à retardement. Une utilisation du processeur de 50 %, si elle se produit aux heures de pointe, signifie qu'il reste encore beaucoup de place pour exécuter des tâches plus lourdes. Mais si une utilisation de 50 % du processeur se produit fréquemment pendant les périodes d'inactivité, cela signifie que l'application risque de ne pas être en mesure de résister à des pics soudains de requêtes entrantes.
L’essentiel est que pour évaluer l’état du système, les métriques à l’échelle du système telles que le processeur, la mémoire et le disque doivent être corrélées aux métriques des applications. Pour donner une vue plus complète de l'état du système, des métriques d'application telles que le débit des requêtes et des métriques système telles que l'utilisation du processeur peuvent être visualisées.
Outil de gestion des performances des applications (APM)
Les outils APM fournissent des opérations de base telles que la collecte de données, le stockage de données et la visualisation des données. Généralement, un agent est chargé de collecter et d'envoyer des données à un magasin de données, et d'utiliser une interface Web pour visualiser les données dans un tableau de bord axé sur les requêtes Web.
APM peut être utilisé pour :
Fournir une visualisation globale des performances des applications Web
Visualisez les performances de requêtes Web spécifiques
Envoyez automatiquement des alertes lorsque les performances de l'application Web se détériorent ou que plusieurs erreurs se produisent
; Lorsque le volume d'activité est important, vérifiez le mode de réponse de l'application.
Des exemples sont donnés ici.
Voici une liste non exhaustive des outils APM prenant en charge ASP.NET et IIS :
NewRelic APM
Informations sur les applications
AppDynamics
Stackifier
Outils de surveillance des infrastructures
Les outils de surveillance de l'infrastructure collectent des métriques au niveau de l'hôte, qui peuvent refléter plus complètement les performances. Ces métriques sont collectées aux niveaux matériel et logiciel.
DataDog
OpServer - Open Source
Outils d'analyse légers
Des outils d'analyse légers fournissent des mesures de haut niveau pour des requêtes Web spécifiques et fournissent des commentaires en temps réel lorsque les développeurs parcourent les pages Web. Ces outils peuvent être utilisés dans tous les types d'environnements (y compris les environnements de développement, la vérification de l'assurance qualité, les environnements de test, les environnements de production, etc.), ils sont donc idéaux pour une évaluation rapide des performances d'une page spécifique.
Par rapport aux outils d'analyse complets correspondants, la différence essentielle entre les outils d'analyse légers est qu'ils ne sont pas liés au processus, ce qui signifie que vous n'avez pas à vous soucier de la surcharge qu'ils génèrent lors de l'utilisation d'outils d'analyse légers.
Dans l'environnement de développement, des outils d'analyse légers fournissent un retour en temps réel sur le code en cours d'écriture. Ceci est très utile pour repérer des problèmes comme N+1 ou des temps de réponse lents, puisque les temps de réponse sont toujours affichés dans le coin de la page.
MiniProfiler open source
Aperçu open source
Comblez les lacunes avec des compteurs de performances
Les compteurs de performances des systèmes Windows fournissent différents indicateurs au niveau matériel et logiciel. Les outils de surveillance signalent souvent des compteurs de performances, tels que l'utilisation du processeur et de la mémoire. Mais souvent, certains compteurs utiles manquent, comme le temps de ramassage des ordures, etc. La manière la plus pratique de commencer est d’utiliser une liste de base et d’ajouter les compteurs pertinents nécessaires à l’itération. De plus, il est possible d'utiliser perfmon pour collecter et visualiser des compteurs de performances en temps réel. Dans de nombreux cas, il est également possible d’intégrer des indicateurs ou des plug-ins personnalisés par l’utilisateur aux outils APM.
Outils SQL
Étant donné que les bases de données sont couramment utilisées dans de nombreuses applications, la couche de persistance (c'est-à-dire la base de données SQL) devient souvent un goulot d'étranglement en termes de performances. Les outils professionnels de surveillance SQL peuvent fournir des mesures d'utilisation des ressources, ainsi que des mesures spécifiques telles que les temps d'attente, les compilations par seconde, etc., pour n'en nommer que quelques-unes.
En fournissant les données suivantes, certains types de problèmes peuvent être découverts et des améliorations de performances peuvent être apportées :
Débit excessif sur une ou plusieurs requêtes
Utilisation excessive du processeur, ce qui suggère des problèmes de requête ou des index manquants
; Requêtes à haut débit pouvant être mises en cache.
Les outils de surveillance SQL incluent :
Moniteur SQL RedGate
Conseiller en performances SQLSentry
Autres systèmes de persistance
Tous les sous-systèmes doivent être surveillés dans une certaine mesure. Pour les systèmes à faible débit ou non critiques, une simple collecte et visualisation de données suffira. Dans d’autres cas, une surveillance professionnelle plus avancée est requise.
Outil d'analyse de code
Lorsqu'une page ou un morceau de code spécifique a été identifié comme lent, les outils d'analyse de code peuvent fournir la vue la plus détaillée possible pour l'identification des problèmes de performances. Les outils d'analyse de code fournissent également une vue précise des appels externes tels que les requêtes de base de données et les requêtes Web.
Outils d'analyse :
Fourmis Redgate
JetBrains dotTrace
Outil d'analyse de la mémoire
Les métriques de surveillance de la mémoire et de garbage collection aident à détecter les problèmes potentiels. Mais même si ces indicateurs montrent qu’il y a un problème, ils ne permettent souvent pas de savoir où se situe le problème. Si vous avez besoin d’approfondir les problèmes de mémoire et de garbage collection, les outils d’analyse de la mémoire peuvent s’avérer utiles.
Outils d'analyse :
JetBrains dotMemory
Profileur de mémoire de fourmis RedGate
Outils d'analyse client
Les problèmes de performances peuvent également provenir du front-end. Ce problème est très courant de nos jours en raison de la prolifération d'applications monopage alimentées par JavaScript. Tous les principaux navigateurs disposent d'outils intégrés tels que l'analyse de code et l'analyse de la mémoire. Les outils qui affichent la séquence des événements et des demandes permettent de déterminer en un coup d'œil si un problème provient du front-end ou du back-end.
Outils :
Chronologie de Google Chrome
Firefox
Outil d'analyse de pages
Les outils clients de haut niveau constituent un point de départ pratique pour identifier et résoudre les problèmes de performances. Ces outils peuvent fournir une vue d’ensemble des causes profondes des problèmes de temps de réponse et formuler des recommandations. Par exemple, PageSpeed Insights de Google est un outil gratuit.
Il existe tellement de facteurs et d’outils liés aux performances du système que cela peut paraître compliqué. Mais ils peuvent se résumer en un mot : données. Avoir une vision claire et précise du système permet de raisonner sur les problèmes de performances. Cela vous permet également d'apprendre à résoudre les problèmes de performances sur place, car les mesures et graphiques de performances vous guideront pour découvrir ce qui affecte exactement les performances du système.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Suggestions de développement Laravel : comment surveiller et optimiser les performances Dans le développement d'applications Web d'aujourd'hui, les performances sont une considération très importante. Une application efficace offre non seulement une meilleure expérience utilisateur, mais réduit également la charge du serveur et permet de réaliser des économies. Cet article vous présentera quelques suggestions de surveillance et d'optimisation des performances pour les applications Laravel. Utilisation des outils de surveillance des performances Laravel fournit des outils de surveillance des performances très utiles, tels que LaravelDebugbar et LaravelT.

Les outils courants de surveillance et de réglage des performances dans le développement Java nécessitent des exemples de code spécifiques Introduction : Avec le développement continu de la technologie Internet, Java, en tant que langage de programmation stable et efficace, est largement utilisé dans le processus de développement. Cependant, en raison de la nature multiplateforme de Java et de la complexité de l'environnement d'exécution, les problèmes de performances sont devenus un facteur incontournable dans le développement. Afin de garantir la haute disponibilité et la réponse rapide des applications Java, les développeurs doivent surveiller et ajuster les performances. Cet article présentera quelques fonctionnalités courantes de surveillance et de réglage des performances Java.

Middleware Laravel : ajout de requêtes de base de données et de surveillance des performances aux applications Introduction : les requêtes de données et la surveillance des performances sont très importantes lors du développement d'applications Web. Laravel fournit un moyen pratique de répondre à ces exigences, à savoir le middleware. Le middleware est une technologie qui gère les requêtes et les réponses. Il peut exécuter une certaine logique avant que la requête n'atteigne le contrôleur ou après que la réponse soit renvoyée à l'utilisateur. Cet article explique comment utiliser le middleware Laravel pour implémenter les requêtes de base de données et la surveillance des performances. 1. Créez le milieu

UniApp met en œuvre les meilleures pratiques en matière de surveillance des performances et d'analyse des goulots d'étranglement. Avec le développement rapide des applications mobiles, les exigences des développeurs en matière de performances des applications augmentent également. Pour les développeurs UniApp, la surveillance des performances et l'analyse des goulots d'étranglement sont une tâche très importante. Cet article présentera les meilleures pratiques en matière de surveillance des performances et d'analyse des goulots d'étranglement dans UniApp, et fournira quelques exemples de code à titre de référence. 1. L'importance de la surveillance des performances Dans les applications mobiles modernes, l'expérience utilisateur est très importante. Les problèmes de performances peuvent entraîner un chargement lent des applications, des décalages, etc.

Comment utiliser Linux pour la surveillance et l'optimisation des performances du système Introduction : Linux est un noyau de système d'exploitation open source largement utilisé dans divers serveurs et périphériques embarqués. Lors de l'utilisation du système d'exploitation Linux, il est très important de surveiller et d'optimiser les performances du système. Cet article explique comment utiliser les outils fournis par Linux pour surveiller les performances du système et améliorer les performances du système grâce à l'analyse et au réglage. 1. Outils de surveillance des performances du système Le système d'exploitation Linux fournit une multitude d'outils de surveillance des performances. En voici quelques-uns couramment utilisés :

Introduction aux stratégies de surveillance et de réglage des performances php-fpm : Avec le développement d'Internet, PHP, en tant que langage de script efficace côté serveur, est largement utilisé dans le domaine du développement Web. En tant que solution pour l'environnement d'exécution PHP, php-fpm possède des capacités de traitement simultané élevées. Cependant, dans le cas d'une concurrence élevée, php-fpm sera confronté à des goulots d'étranglement en termes de performances. Cet article présentera les stratégies de surveillance et de réglage des performances de php-fpm, visant à améliorer les performances et la stabilité de php-fpm. 1. Fonctionnalité php-fpm

Vue est un framework frontal populaire qui fournit de nombreux outils et techniques de développement puissants pour aider les développeurs à créer des interfaces utilisateur efficaces. Un aspect important de ceci est la surveillance des performances et le suivi des erreurs, qui sont essentiels pour améliorer la stabilité et les performances de votre application. Cet article partagera quelques conseils sur le développement de Vue pour vous aider à mettre en œuvre la surveillance des performances frontales et le suivi des erreurs. 1. Surveillance des performances à l'aide du chargement de composants asynchrones Dans les applications Vue, le chargement de composants asynchrones peut diviser le code en morceaux plus petits et les charger à la demande en cas de besoin. Cela peut réduire

MTR : Expérience pratique dans la surveillance et le réglage des performances des bases de données combinées au cadre de test MySQL Introduction : La surveillance et le réglage des performances des bases de données sont cruciaux lors du développement et de la maintenance d'applications complexes. MySQL est l'une des bases de données relationnelles les plus utilisées. Elle dispose d'outils matures de surveillance et de réglage des performances, parmi lesquels le framework MTR (MySQLTestRun) est l'un des outils très utiles. Cet article présentera comment utiliser le framework MTR pour effectuer la surveillance et le réglage des performances des bases de données MySQL, et fournira une expérience pratique.
