Comment faire pour résoudre les problèmes liés à la surveillance et les problèmes de journalisation des compteurs de performances dans.NET Framework 2.0

Résumé

Cet article décrit comment utiliser les compteurs de performance common language runtime (CLR) et comment résoudre les problèmes connus qui se produisent lorsque vous utilisez des compteurs de performance dans le Microsoft.NET Framework 2.0. Pour surveiller les compteurs de performance sur un ordinateur distant, vous devez être un administrateur sur l’ordinateur distant. Si l’ordinateur distant exécute Microsoft Windows Server 2003, vous devez être dans le groupe des utilisateurs du (performances journal PLU) ou dans le groupe d’utilisateurs de moniteur de performances (PMU). Pour enregistrer les compteurs de performances CLR, configurez l’utilisateur d’exécuter en tant qu’utilisateur disposant d’autorisations d’administration. Cet article traite des problèmes liés à l’analyse ou la journalisation des compteurs de performances CLR sur des ordinateurs distants.

INTRODUCTION

Le CLR fournit du code managé avec des services tels que les suivants :
  • Intégration interlangage
  • Sécurité d’accès du code
  • Gestion de la durée de vie des objets
  • Gestion des ressources
  • Sécurité de type
  • Modèle de thread préemptif
  • Services de métadonnées (réflexion du type)
  • Débogage et profilage de prise en charge


Le CLR a des compteurs de performance que vous pouvez utiliser pour effectuer le suivi de la fonctionnalité d’une application. Vous pouvez utiliser l’Analyseur de performances (Perfmon) pour créer des compteurs de performance personnalisés. Vous pouvez surveiller les performances du système en consultant les valeurs renvoient par les compteurs de performance.

Plus d'informations

Les problèmes connus suivants peuvent se produire lorsque vous utilisez les compteurs de performances CLR dans.NET Framework 2.0.

Vous ne pouvez pas surveiller à distance les compteurs de performances CLR

Lorsque vous essayez d’analyser les compteurs de performances CLR sur un ordinateur distant dans Perfmon, vous recevez un message d’erreur semblable au suivant :
Impossible de se connecter à l’ordinateur
Pour résoudre ce problème, appliquez l’une des méthodes suivantes.

Méthode 1: Vérifiez que le service Registre distant est en cours d'exécution sur l'ordinateur distant

Lorsque ce problème se produit, vérifiez que le service Registre distant est en cours d’exécution sur l’ordinateur distant. Pour ce faire, procédez comme suit :
  1. Cliquez sur Démarrer, sur exécuter, tapez cmd, puis cliquez sur OK.
  2. À l’invite de commandes, tapez tasklist -svcet appuyez sur ENTRÉE.

    Vérifiez qu’un processus hôte Svchost.exe est en cours d’exécution qui a des RemoteRegistry dans la colonne de Services . Si le service ne fonctionne pas, passez à l’étape 3.
  3. À l’invite de commandes, tapez net start RemoteRegistryet appuyez sur ENTRÉE.

Méthode 2 : Vérifiez que vous disposez des autorisations requises

Pour surveiller les compteurs de performances CLR sur un ordinateur distant, les conditions suivantes doivent être remplies :
  • Vous devez être membre du groupe Administrateurs sur l’ordinateur distant.
  • Si l’ordinateur distant exécute Windows Server 2003, vous devez être un membre du groupe utilisateurs du moniteur de performances pour surveiller les compteurs de performance.
  • Si l’ordinateur distant exécute Windows Server 2003, vous devez être membre du groupe utilisateurs du journal de performances pour enregistrer les compteurs de performances. En outre, vous devez utiliser la commande Exécuter en tant que pour configurer le processus d’enregistrement pour s’exécuter sous le groupe Administrateurs ou du groupe utilisateurs du journal de performances.

Vous ne pouvez pas afficher les compteurs de performances CLR même si vous pouvez vous connecter à l’ordinateur distant

Si l’ordinateur distant basé sur Windows Server 2003 exécute le Microsoft.NET Framework 1.1 Service Pack 1 (SP1), appliquez le correctif décrit dans l’article suivant de la Base de connaissances Microsoft :
924421 correctif : Application se détériore les performances ou l’ordinateur cesse de répondre lorsque vous exécutez une application basée sur.NET Framework 1.1 Service Pack 1 sur un ordinateur Windows 2003

Vous recevez un message d’erreur « ACCESS_DENIED » lorsque vous essayez de démarrer la journalisation des compteurs de performances CLR

Lorsque vous essayez de démarrer la journalisation des compteurs de performances CLR, vous pouvez recevoir un message d’erreur semblable au suivant :
Code d’erreur 5 (ACCESS_DENIED)

Impossible d’ouvrir la clé de Registre du shim de base de données version - v2.0.50727.00000. La procédure d’ouverture pour le service «. NETFramework » dans la DLL « D:\WINNT\system32\mscoree.dll » a échoué. Les données de performance pour ce service ne sera pas disponibles. Le code d’état renvoyé est le premier DWORD dans les données attachées. Le code d’état est 5 (ACCESS_DENIED)
Ce problème se produit parce que le premier processus pour charger le compteur de performance CLR DLL (Corperfmonext.dll) crée un événement nommé pour la communication de la Communication entre processus (IPC). Un événement nommé est créé qui utilise les autorisations pour l’ID utilisateur du processus.

Par exemple, un utilisateur disposant d’autorisations d’administration démarre Perfmon. Ensuite, l’utilisateur commence à surveiller les compteurs de performances CLR. L’événement nommé est créé en utilisant les autorisations qui sont accordées au groupe administrateur. Dans ce scénario, l’utilisateur reçoit le message d’erreur si l’utilisateur essaie de démarrer la journalisation des compteurs de performances CLR. Ce problème se produit car le service » Journaux et alertes de Performance » ne peut pas accéder à l’événement nommé.

Pour contourner ce problème, tout d’abord de charger le fichier Corperfmonext.dll dans le service » Journaux et alertes de Performance ». Pour ce faire, procédez comme suit :
  1. Cliquez sur Démarrer, sur exécuter, tapez cmd, puis cliquez sur OK.
  2. À l’invite de commandes, tapez tasklist -m corperfmonext.dllet appuyez sur ENTRÉE. Remarque chaque processus répertorié.
  3. À l’invite de commandes, tapez taskmgret appuyez sur ENTRÉE.
  4. Sous l’onglet processus , cliquez sur chaque processus que vous avez noté à l’étape 2, puis cliquez sur Terminer le processus.
  5. Cliquez sur Démarrer, sur exécuter, tapez Perfmon, puis cliquez sur OK.
  6. Développez journaux de performances et alertes, puis cliquez sur Journaux de compteur.
  7. Cliquez sur le service que vous souhaitez utiliser, puis cliquez sur Démarrer.
Remarque Ce problème doit être résolu dans une future version du.NET Framework.

Vous ne pouvez pas analyser les programmes gérés de 32 bits dans la version 64 bits de l’Analyseur de performances

Ce problème se produit car la version 64 bits du fichier Corperfmonext.dll énumère uniquement les processus 64 bits. En outre, la version 32 bits du fichier Corperfmonext.dll énumère uniquement les processus 32 bits. Pour afficher les programmes gérés de 32 bits sur un ordinateur 64 bits, cliquez sur Démarrer, sur exécuter, tapez SystemRoot%\SysWOW64\perfmon.exeet puis cliquez sur OK.

Remarque Ce problème doit être résolu dans une future version du.NET Framework.

PerfMon ne détecte pas lors du redémarrage d’un programme managé sur l’ordinateur distant

Ce problème se produit car le service Registre distant s’exécute sous le compte Service Local. Le compte Service Local n’est pas un membre du groupe Utilisateurs du moniteur de performances ou du groupe Utilisateurs du journal de performances . Par conséquent, le compte Service Local n’a pas d’accès au bloc de IPC de compteur de performance CLR. Néanmoins, vous pouvez surveiller les compteurs de performances CLR, car le service Registre distant emprunte l’identité de l’utilisateur qui a lancé l’analyse.

Toutefois, si le processus surveillé redémarre, un nouveau bloc d’IPC est ouvert par un thread secondaire dans le service Registre distant. Ce thread auxiliaire n’emprunte pas l’identité de l’utilisateur sur le client. Par conséquent, le thread ne peut pas accéder le bloc IPC de compteur de performance CLR. Pour contourner ce problème, redémarrez la surveillance de compteur de performance à partir du client.

Plusieurs compteurs de performances CLR apparaissent qui portent des noms ressemblant à « W3wp #1 »

Lorsque plusieurs processus de travailleurs ASP.NET sont en cours d’exécution, les compteurs de performances CLR qui ont des noms semblables « W3wp #1 » ou « W3sp #2" peuvent s’afficher. Dans.NET Framework 2.0, un compteur nommé ID de processus a été ajouté à l’objet de performances mémoire CLR .NET. Ce compteur affiche l’ID de processus d’une instance. Vous pouvez utiliser ce compteur pour déterminer le compteur de performance CLR qui est associé à un processus.

Si vous ne voyez pas un compteur nommé ID de processus sous Mémoire CLR .NET, les symboles de compteur de performance ne peuvent pas correctement installés. Pour résoudre ce problème, procédez comme suit :
  1. Cliquez sur Démarrer, sur exécuter, tapez cmd, puis cliquez sur OK.
  2. À l’invite de commandes, tapez unlodctr. NetFramework, puis appuyez sur ENTRÉE.
  3. Utilisez la commande cd pour passer dans le dossier \Microsoft.Net\Framework\v2.0.50727.
  4. À l’invite de commandes, tapez lodctr corperfmonsymbols.iniet appuyez sur ENTRÉE.
Propriétés

ID d'article : 922775 - Dernière mise à jour : 17 janv. 2017 - Révision : 1

Commentaires