Gestion des noms d’instances en double

Même si les fournisseurs sont vivement encouragés à utiliser des noms d’instance uniques, tous ne le font pas. La convention en matière d’affichage des noms d’instance en double est d’ajouter un caractère # et un numéro de série au nom d’instance, à l’exception de la première occurrence du nom. Par exemple, si exemple comporte trois instances de svchost, les trois noms s’affichent sous la forme svchost, svchost#1 et svchost#2.

Malheureusement, cette convention ne règle pas entièrement le problème. Les numéros de série sont attribués en fonction l’ordre dans lequel un nom d’instance déterminé apparaît dans un exemple, et cet ordre peut ne pas être cohérent d’un exemple à l’autre. Par exemple, l’exemple A peut présenter svchost (PID 100), svchost#1 (PID 200) et svchost#2 (PID 300). Ensuite, si le svchost associé au PID 100 s’arrête, l’exemple suivant présentera svchost (PID 200) et svchost#1 (PID 300). La logique de correspondance de base tente de mettre en correspondance les statistiques svchost#1 de l’exemple A (de PID 200) par rapport aux statistiques svchost#1 de l’exemple B (de PID 300), ce qui donne des résultats non valides pour l’exemple B. Des erreurs se produisent lorsqu’une nouvelle instance non unique apparaît dans un exemple ou lorsqu’une instance non unique cesse d’apparaître dans un exemple (sauf si l’instance ajoutée/supprimée était la dernière).

Ensemble de compteurs de processus

Ce problème est particulièrement problématique pour l’ensemble de compteurs Process, car il utilise uniquement le nom EXE du processus comme nom d’instance même si le nom EXE n’est pas unique. Le comportement par défaut de l’ensemble de compteurs Process sur Windows ne peut pas être changé du fait de problèmes de compatibilité.

Conseil

Windows 11 et les versions ultérieures incluent le nouvel ensemble de compteurs Process V2. L’ensemble de compteurs Process V2 inclut l’ID de processus (PID) dans le nom de l’instance, ce qui évite le problème de duplication de nom de l’ensemble de compteurs Process.

Vous pouvez modifier le comportement des ensembles de compteurs Process et Thread de sorte qu’ils utilisent des noms d’instance uniques en définissant les valeurs de Registre ProcessNameFormat ou ThreadNameFormat sous la clé de Registre HKLM\System\CurrentControlSet\Services\Perfproc\Performance.

Avertissement

Le fait de permettre à l’ensemble de compteurs Process d’utiliser des noms d’instance uniques peut amener certains programmes à se comporter de manière incorrecte, car de nombreux programmes tablent sur le modèle d’affectation de noms non uniques. Par exemple, un programme qui recherche une instance dotée d’un nom EXE bien connu ne pourra plus trouver cette instance après l’activation des noms d’instance uniques.

Le type de Registre pour ces valeurs est REG_DWORD. Le fait de définir la valeur sur 2 a pour effet d’ajouter l’identificateur de processus (PID) au nom d’instance de processus et l’identificateur de thread (TID) au nom d’instance de thread. Pour désactiver cette fonctionnalité, définissez la valeur sur 1 ou supprimez la valeur.