Compteurs de performance pour ASP.NET
ASP.NET prend en charge deux groupes de compteurs de performance : système et application. Les compteurs de performance système sont exposés dans l'Analyseur de performances de Windows en tant qu'objet performance counter ASP.NET. Les compteurs de performance application sont exposés comme objet performance Applications ASP.NET.
Notes
La valeur associée à chaque compteur de performance est mise à jour toutes les 400 millisecondes. Lorsque vous créez une application de surveillance, veillez à tenir compte de cet intervalle de temps pour que votre code n'utilise pas une valeur de compteur obsolète. Pour plus d'informations, consultez Utilisation de composants de surveillance système.
Pour plus d'informations sur les compteurs de performance système et application, consultez Comment : créer des catégories de compteurs de performance, Gestion des catégories et des compteurs et Comment : créer des compteurs de performance personnalisés.
Lorsque vous surveillez les performances de vos applications Web ASP.NET, vous pouvez effectuer le suivi des compteurs de performance suivants.
Objet de performance | Compteur de performance |
---|---|
ASP.NET |
Redémarrages de l'application |
ASP.NET |
Demandes en attente |
ASP.NET |
Redémarrages du processus de traitement |
Applications ASP.NET |
Total d'erreurs |
Applications ASP.NET |
Demandes/s |
Processeur |
% CPU Utilization (Utilisation de l'UC en %)
Remarque
Une faible utilisation de l'unité centrale ou l'incapacité d'optimiser cette utilisation quelle que soit la charge client peut indiquer un conflit de verrou ou de ressource dans votre application Web.
|
En outre, les compteurs de performance suivants peuvent être précieux pour détecter les problèmes liés aux performances de votre application.
Objet de performance | Compteur de performance |
---|---|
Applications ASP.NET |
Nombre d'instances de pipeline |
Exceptions CLR .NET |
Nb. exceptions levées |
Système |
Changements de contexte/s |
Le compteur Nb. exceptions levées affiche le nombre d'exceptions levées dans une application, dans la mesure où ce chiffre peut avoir une incidence sur les performances. Cependant, certains chemins d'accès de code s'appuient sur les exceptions pour un fonctionnement correct. Par exemple, la méthode Redirect de l'objet Response lève l'exception ThreadAbortException, qui ne peut pas être interceptée. Par conséquent, il peut être utile de suivre cette valeur en même temps que le compteur Total d'erreurs pour voir si l'exception a généré une erreur sur l'application.
Le compteur Changements de contexte/s mesure le rythme auquel les contextes de thread sont commutés par toutes les unités centrales de l'ordinateur serveur Web. Un taux élevé indique habituellement soit un taux de conflits élevé dans les verrous, soit un grand nombre de basculements par le thread entre les modes utilisateur et noyau. Si vous êtes confronté à une telle situation, une investigation plus poussée à l'aide des générateurs de profils d'échantillonnage et d'autres outils peut s'imposer.
Compteurs de performance du système ASP.NET
ASP.NET prend en charge les compteurs de performance système ASP.NET répertoriés dans le tableau suivant. Ces compteurs regroupent les informations de toutes les applications ASP.NET sur un serveur Web.
Notes
Il existe une différence significative entre les compteurs Sessions du serveur d'état de l'objet performance ASP.NET, qui s'appliquent uniquement à l'ordinateur serveur sur lequel le serveur d'état s'exécute, et les compteurs Sessions de l'objet performance Applications ASP.NET, qui s'appliquent uniquement aux sessions utilisateur se produisant in-process.
Redémarrages de l'application
Nombre de fois où une application a été redémarrée pendant la durée de vie du serveur Web. Les redémarrages de l'application sont incrémentés chaque fois qu'un événement Application_OnEnd est déclenché. Le redémarrage d'une application peut se produire à cause de modifications du fichier Web.config, de modifications des assemblys stockés dans le répertoire bin de l'application, ou lorsqu'une application doit être recompilée en raison de nombreuses modifications apportées aux pages Web ASP.NET. Une augmentation inattendue de ce compteur peut indiquer que des problèmes provoquent le recyclage de votre application Web. Dans pareil cas, menez des investigations dès que possible.Notes
Cette valeur est remise à zéro chaque fois que l'hôte IIS (Internet Information Services) est redémarré.
- Exécution des applications
Nombre des applications qui s'exécutent simultanément sur l'ordinateur serveur.
- Demandes déconnectées
Nombre de demandes qui ont été déconnectées en raison d'un échec de communication.
- Demandes en attente
Nombre de demandes dans la file d'attente, en attente de traitement. Lorsque ce chiffre commence à croître linéairement avec une augmentation de la charge client, l'ordinateur serveur Web a atteint la limite de demandes simultanées qu'il peut traiter. La valeur maximale par défaut pour ce compteur est de 5 000 demandes. Vous pouvez la modifier dans le fichier Machine.config de l'ordinateur.
- Demandes rejetées
Nombre total des demandes non exécutées en raison de ressources serveur insuffisantes pour les traiter. Ce compteur représente le nombre de demandes qui retournent un code d'état 503 HTTP, indiquant que le serveur est trop occupé.
- Durée d'attente de la demande
Temps écoulé, en millisecondes, avant que la demande la plus récente dans la file d'attente ne soit traitée.
- Session State Server Connections Total (Total de connexions au serveur d'état de session)
Nombre total de connexions à état de session à l'ordinateur sur lequel sont stockées les données à état de session out-of-process. Pour plus d'informations, consultez Modes d'état de session.
- Session SQL Server Connections Total (Total de connexions au serveur SQL Server de session)
Nombre total de connexions à état de session à la base de données Microsoft SQL Server dans laquelle sont stockées les données à état de session. Pour plus d'informations, consultez Modes d'état de session.
- Sessions abandonnées du serveur d'état
Nombre de sessions utilisateur explicitement abandonnées. Il s'agit de sessions auxquelles des actions utilisateur spécifiques ont mis fin, par exemple, la fermeture du navigateur ou la navigation vers un autre site. Ce compteur n'est disponible que sur l'ordinateur sur lequel le service du serveur d'état (aspnet_state) s'exécute.
- Sessions actives du serveur d'état
Nombre de sessions utilisateur actuellement actives. Ce compteur n'est disponible que sur l'ordinateur sur lequel le service du serveur d'état (aspnet_state) s'exécute.
- Dépassement du délai d'attente du serveur d'état
Nombre de sessions utilisateur qui sont inactives en l'absence d'action de l'utilisateur. Ce compteur n'est disponible que sur l'ordinateur sur lequel le service du serveur d'état (aspnet_state) s'exécute.
- Total de sessions du serveur d'état
Nombre de sessions créées pendant la durée de vie du processus. Ce compteur correspond à la valeur totale de Sessions actives du serveur d'état, Sessions abandonnées du serveur d'état et Dépassement du délai d'attente du serveur d'état. Ce compteur n'est disponible que sur l'ordinateur sur lequel le service du serveur d'état (aspnet_state) s'exécute.
- Redémarrages du processus de traitement
Nombre de fois où un processus de traitement a été redémarré sur l'ordinateur serveur. Le processus de traitement peut être redémarré s'il échoue inopinément ou s'il est intentionnellement recyclé. Si ce compteur augmente de façon inattendue, vous devez mener des investigations dès que possible.
- Processus de traitement en cours
Nombre de processus de traitement s'exécutant sur l'ordinateur serveur.
Compteurs de performance d'application ASP.NET
ASP.NET prend en charge les compteurs de performance d'application répertoriés dans le tableau suivant. Ces compteurs vous permettent de surveiller la performance d'une seule instance d'une application ASP.NET. Une instance unique nommée __Total__ est disponible pour ces compteurs. Cette instance regroupe les compteurs de toutes les applications d'un serveur Web (semblable aux compteurs globaux décrits précédemment dans cette rubrique). L'instance __Total__ est toujours disponible. Les compteurs affichent zéro si aucune application n'est en cours d'exécution sur le serveur.
- Demandes anonymes
Nombre de demandes utilisant l'authentification anonyme.
- Demandes anonymes/s
Nombre de demandes par seconde utilisant l'authentification anonyme.
- Total d'entrées dans le cache
Nombre total des entrées dans le cache. Ce compteur inclut à la fois l'utilisation du cache par l'infrastructure de page ASP.NET et l'utilisation du cache d'application via les API.
- Total d'accès au cache
Nombre total des accès à partir du cache. Ce compteur inclut à la fois l'utilisation du cache par l'infrastructure de page ASP.NET et l'utilisation du cache d'application via les API.
- Total d'accès au cache sans résultat
Nombre de demandes au cache ayant échoué par application. Ce compteur inclut à la fois l'utilisation du cache par l'infrastructure de page ASP.NET et l'utilisation du cache d'application via les API.
- Total de taux d'accès au cache
Taux d'accès par rapport aux accès sans résultat pour le cache. Ce compteur inclut à la fois l'utilisation du cache par l'infrastructure de page ASP.NET et l'utilisation du cache d'application via les API.
- Taux de rendement total du cache
Nombre d'ajouts et de retraits effectués dans le cache par seconde, ce qui permet de déterminer si le cache est utilisé de façon efficace. Si le taux de rendement est élevé, le cache n'est pas utilisé de manière efficace.
- Entrées API du cache
Nombre total des entrées dans le cache de l'application.
- Accès API au cache
Nombre total d'accès à partir du cache lorsqu'il est accessible uniquement par l'intermédiaire des interfaces API du cache externe. Ce compteur ne suit pas l'utilisation du cache par l'infrastructure de page ASP.NET.
- Accès API au cache sans résultat
Nombre total de demandes au cache ayant échoué lorsqu'il est accessible par l'intermédiaire des interfaces API du cache externe. Ce compteur ne suit pas l'utilisation du cache par l'infrastructure de page ASP.NET.
- Taux d'accès API au cache
Taux d'accès au cache par rapport au taux d'échec lorsqu'il est accessible par l'intermédiaire des interfaces API du cache externe. Ce compteur ne suit pas l'utilisation du cache par l'infrastructure de page ASP.NET.
- Taux de rendement de l'API du cache
Nombre d'ajouts et de retraits effectués dans le cache par seconde, lorsqu'il est utilisé par l'intermédiaire des interfaces API externes (excepté usage par l'infrastructure de page ASP.NET). Ceci est utile pour aider à déterminer l'efficacité d'utilisation du cache. Si le taux de rendement est élevé, le cache n'est pas utilisé de manière efficace.
Total de compilations
Nombre total de compilations qui ont eu lieu pendant la durée de vie du processus de serveur Web en cours. La compilation se produit lorsqu'un fichier avec une extension .aspx, .asmx, .ascx ou .ashx, ou un fichier source code-behind, est compilé dynamiquement sur le serveur.Ce nombre atteindra initialement une valeur pic puisque les demandes sont faites à toutes les parties d'une application. Cependant, une fois la compilation effectuée, la sortie compilée obtenue est enregistrée sur le disque, où elle est réutilisée jusqu'à ce que le fichier source soit modifié. Ceci signifie que, même en cas de redémarrage d'un processus, le compteur peut rester à zéro (inactif) jusqu'à ce que l'application soit modifiée ou redéployée.
- Demandes de débogage
Nombre de demandes qui surviennent alors que le débogage est activé.
- Erreurs lors du prétraitement
Nombre d'erreurs survenues pendant l'analyse, à l'exclusion des erreurs de compilation et des erreurs d'exécution.
- Erreurs lors de la compilation
Nombre d'erreurs survenues pendant la compilation dynamique, à l'exclusion des erreurs d'analyse et des erreurs d'exécution.
- Erreurs lors de l'exécution
Nombre total d'erreurs qui surviennent pendant l'exécution d'une demande HTTP, à l'exclusion des erreurs d'analyse et des erreurs de compilation.
Erreurs non gérées lors de l'exécution
Nombre total d'erreurs non gérées qui surviennent pendant l'exécution des demandes HTTP. Une erreur non gérée est une exception runtime non interceptée dans le code utilisateur et pénètre dans la logique de gestion des erreurs internes ASP.NET. Des exceptions à cette règle surviennent lorsque :Les erreurs personnalisées sont activées, une page d'erreur est définie, ou les deux.
L'événement Page_Error est défini dans le code utilisateur et l'erreur est effacée (à l'aide de la méthode ClearError) ou une redirection est effectuée.
- Erreurs non gérées lors de l'exécution/s
Nombre d'exceptions non gérées par seconde qui surviennent pendant l'exécution des demandes HTTP.
- Total d'erreurs
Nombre total d'erreurs qui surviennent pendant l'exécution des demandes HTTP, y compris les erreurs d'analyse, de compilation ou d'exécution. Ce compteur est la somme des compteurs Erreurs lors de la compilation, Erreurs lors du prétraitement et Erreurs lors de l'exécution. Un serveur Web fonctionnant correctement ne doit pas générer d'erreurs. Si des erreurs se produisent dans votre application Web ASP.NET, elles peuvent fausser les résultats de débit, à cause des différences importantes qui existent dans les chemins de code pour la récupération d'erreur. Menez des investigations et corrigez les bogues éventuels dans votre application avant d'en tester les performances.
- Total d'erreurs/s
Nombre total d'erreurs par seconde qui surviennent pendant l'exécution des demandes HTTP, y compris les erreurs d'analyse, de compilation ou d'exécution.
- Entrées dans le cache de sortie
Nombre total d'entrées dans le cache de sortie.
- Accès au cache de sortie
Nombre total des demandes traitées par le cache de sortie.
- Accès au cache de sortie sans résultat
Nombre des demandes au cache de sortie qui ont échoué par application.
- Taux d'accès au cache de sortie
Pourcentage du total des demandes traitées par le cache de sortie.
- Taux de rendement du cache de sortie
Nombre d'ajouts et de retraits effectués dans le cache de sortie par seconde. Si le taux de rendement est élevé, le cache n'est pas utilisé de manière efficace.
- Nombre d'instances de pipeline
Nombre d'instances de pipeline de demande actives pour l'application ASP.NET spécifiée. Étant donné qu'un seul thread d'exécution peut s'exécuter dans une instance de pipeline, ce chiffre indique le nombre maximal de demandes simultanées qui sont traitées pour une application donnée. Dans la plupart des cas, il est préférable que ce chiffre soit faible sous charge, ce qui signifie que l'unité centrale est bien utilisée.
- Total de demandes entrantes en octets
Taille totale en octets de toutes les demandes.
- Total de demandes sortantes en octets
Taille totale en octets des réponses envoyées à un client. Ce total n'inclut pas les en-têtes de réponse HTTP.
- Demandes en cours d'exécution
Nombre de demandes en cours d'exécution.
Demandes ayant échoué
Nombre total de demandes qui ont échoué. Tout code d'état supérieur ou égal à 400 incrémente ce compteur.Les demandes qui provoquent un code d'état 401 incrémentent ce compteur et le compteur Demandes non autorisées. Les demandes qui provoquent un code d'état 404 ou 414 incrémentent ce compteur et le compteur Demandes non trouvées. Les demandes qui provoquent un code d'état 500 incrémentent ce compteur et le compteur Demandes dépassées.
- Demandes non trouvées
Nombre de demandes qui ont échoué, car les ressources sont introuvables (code d'état 404, 414).
- Demandes non autorisées
Nombre de demandes qui ont échoué par absence d'autorisation (code d'état 401).
- Demandes réussies
Nombre de demandes dont l'exécution a abouti (code d'état 200).
- Demandes dépassées
Nombre de demandes dont le délai a été dépassé (code d'état 500).
- Demandes totales
Nombre total des demandes depuis que le service a été démarré.
- Demandes/s
Nombre de demandes exécutées par seconde. Ce chiffre représente le débit actuel de l'application. Sous charge constante, il doit se maintenir dans une fourchette donnée, en excluant les autres travaux du serveur (garbage collection, thread de nettoyage du cache, outils serveur externes, etc.).
- Sessions actives
Nombre de sessions actuellement actives. Ce compteur n'est pris en charge qu'avec l'état de session en mémoire.
- Sessions abandonnées
Nombre de sessions explicitement abandonnées. Ce compteur n'est pris en charge qu'avec l'état de session en mémoire.
- Sessions dépassées
Nombre de sessions dont le délai a été dépassé. Ce compteur n'est pris en charge qu'avec l'état de session en mémoire.
- Total de sessions
Nombre total de sessions. Ce compteur n'est pris en charge qu'avec l'état de session en mémoire.
- Transactions interrompues
Nombre de transactions annulées pour toutes les applications ASP.NET actives.
- Transactions validées
Nombre de transactions validées pour toutes les applications ASP.NET actives.
- Transactions en attente
Nombre de transactions en cours pour toutes les applications ASP.NET actives.
- Total de transactions
Nombre total de transactions pour toutes les applications ASP.NET actives.
- Transactions/s
Nombre de transactions démarrées par seconde pour toutes les applications ASP.NET actives.
Voir aussi
Concepts
Développement d'applications ASP.NET haute performance
Optimisation des performances dans ASP.NET
Contrôle de la performance des applications ASP.NET