Utiliser les compteurs de performance pour diagnostiquer les problèmes de performance des applications sur les hôtes de session Bureau à distance

S’applique à : Windows Server 2022, Windows Server 2019, Windows 10

La mauvaise performance des applications est l'un des problèmes les plus difficiles à diagnostiquer, en particulier pour les applications lentes ou qui ne répondent pas. Traditionnellement, vous commencez votre diagnostic en collectant des données sur le processeur, la mémoire, les entrées/sorties du disque et d'autres métriques. Vous utilisez ensuite des outils tels que Windows Performance Analyzer pour tenter de déterminer la cause du problème. Malheureusement, dans la plupart des cas, ces données ne vous permettent pas d’identifier l’origine, car les compteurs de consommation des ressources enregistrent des variations importantes et fréquentes. Cette situation rend difficile la lecture des données et leur corrélation avec le problème signalé.

Notes

Le compteur de délai d’entrée utilisateur est compatible uniquement avec :

  • Windows Server 2019 ou ultérieur
  • Windows 10, version 1809 ou ultérieure

Le compteur du délai d'entrée utilisateur peut vous aider à identifier rapidement la cause racine des mauvaises performances du Bureau à distance pour l'utilisateur final. Ce compteur mesure la durée pendant laquelle une entrée utilisateur, telle que l'utilisation de la souris ou du clavier, reste dans la file d'attente avant qu'un processus ne la prenne en charge. Le compteur fonctionne dans les sessions locales et distantes.

L’illustration suivante montre une représentation approximative du flux de l’entrée utilisateur, du client vers l’application.

Diagram of user input flows from the users Remote Desktop client to the application.

Le compteur du délai de l’entrée utilisateur mesure l’écart maximal dans un intervalle de temps entre le moment où l’entrée est mise en file d’attente et celui où l’application dans une boucle de message classique la récupère. Une boucle de message traditionnelle est affichée dans l’organigramme suivant :

Diagram of user input Delay performance counter flow.

Une précision importante sur ce compteur est qu’il renseigne sur le délai de l’entrée utilisateur maximal dans un intervalle configurable. Ce délai est la plus longue durée nécessaire à une entrée pour accéder à l’application, ce qui peut affecter la vitesse d’actions importantes et tangibles, telles que la frappe au clavier.

Ainsi, dans le tableau suivant, le délai de l’entrée utilisateur est indiqué comme étant de 1 000 ms dans cet intervalle. Le compteur signale le délai d’entrée utilisateur le plus lent dans l’intervalle. Le compteur signale ce délai, car la perception de « lent » par l’utilisateur est déterminée par la durée de l’entrée la plus lente (le maximum) qu’il rencontre, et non par la vitesse moyenne de toutes les entrées totalisées.

Numéro 0 1 2
Délai 16 ms 20 ms 1 000 ms

Activer et utiliser les nouveaux compteurs de performance

Pour utiliser ces nouveaux compteurs de performance, vous devez d’abord activer une clé de Registre en exécutant cette commande :

reg add "HKLM\System\CurrentControlSet\Control\Terminal Server" /v "EnableLagCounter" /t REG_DWORD /d 0x1 /f

Notes

Si vous utilisez Windows 10 (version 1809 ou ultérieure) ou Windows Server 2019 (ou une version ultérieure), il est inutile d’activer la clé de Registre.

Redémarrez le serveur. Ensuite, ouvrez l’Analyseur de performances et sélectionnez l’icône plus (+), comme indiqué dans la capture d’écran suivante :

Screenshot showing how to add the User input Delay performance counter.

Ensuite, vous devriez voir la boîte de dialogue Ajouter des compteurs, où vous pouvez sélectionner User Input Delay per Process (Délai de l’entrée utilisateur par processus) ou User Input Delay per Session (Délai de l’entrée utilisateur par session).

Screenshot showing how to add the User input Delay per session.

Screenshot showing how to add the User input Delay per process.

Lorsque vous sélectionnez Délai de l’entrée utilisateur par processus, vous voyez les Instances de l’objet sélectionné, autrement dit, les processus dans le format SessionID:ProcessID <Process Image>.

Par exemple, si l’application Calculatrice est en cours d’exécution dans une ID de session 1, vous voyez 1:4232 <Calculator.exe>.

Notes

Tous les processus ne sont pas inclus. Vous ne voyez aucun des processus exécutés en tant que SYSTÈME.

Aussitôt qu’il est ajouté, le compteur commence à donner des informations sur le délai de l’entrée utilisateur. L’échelle maximale est définie sur 100 (ms) par défaut.

Screenshot of an example of activity for the User Input Delay per process in the Performance Monitor.

Consultez ensuite le Délai d’entrée utilisateur par session. Il y a des instances pour chaque ID de session, et leurs compteurs renseignent sur le délai de l’entrée utilisateur de n’importe quel processus au sein de la session spécifiée. En outre, il existe deux instances appelées « Max » (délai d’entrée utilisateur maximal pour toutes les sessions) et « Moyenne » (moyenne pour toutes les sessions).

Ce tableau montre un exemple visuel de ces instances. Vous pouvez obtenir les mêmes informations dans Perfmon en basculant vers le type de graphe Rapport.

Type de compteur Nom de l'instance Délai signalé (ms)
Délai de l’entrée utilisateur par processus 1:4232 <Calculator.exe> 200
Délai de l’entrée utilisateur par processus 2:1000 <Calculator.exe> 16
Délai de l’entrée utilisateur par processus 1:2000 <Calculator.exe> 32
Délai de l’entrée utilisateur par session 1 200
Délai de l’entrée utilisateur par session 2 16
Délai de l’entrée utilisateur par session Moyenne 108
Délai de l’entrée utilisateur par session Max. 200

Compteurs utilisés dans un système surchargé

Examinons maintenant le contenu du rapport pour voir comment il se présente si les performances d’une application se dégradent. Le graphe suivant montre les relevés d’utilisateurs travaillant à distance dans Microsoft Word. Dans le cas présent, les performances se détériorent au fil du temps, au fur et à mesure que d’autres utilisateurs se connectent à distance.

Screenshot of an example performance graph for the RDSH server running Microsoft Word.

Voici comment interpréter les lignes du graphe :

  • La trait rose indique le nombre de sessions ouvertes sur le serveur.
  • Le trait rouge représente l’utilisation du processeur.
  • Le trait vert symbolise le délai maximal de l’entrée utilisateur dans toutes les sessions.
  • Le trait bleu, affiché en noir dans ce graphe, matérialise le délai moyen de l’entrée utilisateur dans toutes les sessions.

Il existe une corrélation entre les pics d’utilisation du processeur et le délai d’entrée utilisateur. Au fur et à mesure que le processeur est utilisé, le délai d'entrée de l'utilisateur augmente. Qui plus est, au fur et à mesure que d’autres utilisateurs sont ajoutés au système, l’utilisation du processeur se rapproche de 100 %, ce qui se traduit par des pics plus fréquents du délai de l’entrée utilisateur. Bien que ce compteur soit utile dans les cas où le serveur manque de ressources, il peut également suivre le délai d’entrée utilisateur lié à une application spécifique.

Options de configuration

L’indication du délai de l’entrée utilisateur d’après un intervalle par défaut de 1000 ms est un point essentiel à retenir lorsque vous utilisez ce compteur de performance. Si vous définissez la propriété de l’intervalle d’échantillonnage du compteur de performance, comme indiqué dans la capture d’écran suivante, sur une autre valeur, l’information donnée sera incorrecte.

Screenshot of the Performance Monitor Properties dialog.

Pour résoudre ce problème, vous pouvez définir la clé de registre suivante, afin qu’elle corresponde à l’intervalle (en millisecondes) que vous souhaitez utiliser. Par exemple, si vous remplacez Échantillonner toutes les secondes par Échantillonner toutes les 5 secondes, vous devez régler cette clé sur 5000 ms.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]

"LagCounterInterval"=dword:00005000

Notes

Si vous utilisez Windows 10 version 1809 ou ultérieure ou Windows Server 2019 ou ultérieur, il est inutile de définir LagCounterInterval pour corriger le compteur de performance.

Nous avons également ajouté deux clés qui peuvent vous être utiles, sous la même clé de Registre :

LagCounterImageNameFirst : définissez cette clé sur DWORD 1 (valeur par défaut 0 ou la clé n’existe pas). Cette clé remplace les noms des compteurs par « Nom de l’image <SessionID:ProcessId> » par exemple, « explorer <1:7964> ». Ce changement est utile si vous souhaitez procéder à un tri par nom d’image.

LagCounterShowUnknown : définissez cette clé sur DWORD 1 (valeur par défaut 0 ou la clé n’existe pas). Cette clé affiche tous les processus qui sont exécutés en tant que services ou SYSTÈME. Certains processus s’affichent avec leur session définie comme « ? ».

L'image suivante montre ce qu'il en est lorsque les deux clés sont activées :

Screenshot of the performance monitor with both keys on.

Utiliser les nouveaux compteurs avec des outils non-Microsoft

Des outils de supervision peuvent consommer ce compteur en utilisant des compteurs de performances.

Partager vos commentaires

Vous pouvez envoyer des commentaires concernant cette fonctionnalité via le Hub de commentaires. Sélectionnez Applications > Toutes les autres applications et incluez « Compteurs de performance des services Bureau à distance—Analyseur de performances » dans le titre de votre billet.