Verwenden von Leistungsindikatoren für die Diagnose von Leistungsproblemen von Anwendungen auf Remotedesktop-SitzungshostsUse performance counters to diagnose app performance problems on Remote Desktop Session Hosts

Gilt für: Windows Server 2019, Windows 10Applies to: Windows Server 2019, Windows 10

Eins der schwierigsten Probleme in der Diagnose ist schlechte Anwendungsleistung – die Anwendungen laufen langsam oder reagieren nicht.One of the most difficult problems to diagnose is poor application performance—the applications are running slow or don't respond. In herkömmlicher Weise können Sie Ihre Diagnose beginnen, indem Sie Metriken zu CPU, Arbeitsspeicher, Datenträger-E/A und weiteren Punkten sammeln und dann Tools wie den Windows Performance Analyzer verwenden, um die Ursache des Problems zu ermitteln zu versuchen.Traditionally, you start your diagnosis by collecting CPU, memory, disk input/output, and other metrics and then use tools like Windows Performance Analyzer to try to figure out what's causing the problem. Leider helfen diese Daten in den meisten Fällen nicht beim Bestimmen der Grundursache, da Indikatoren zum Ressourcenverbrauch viele und große Variationen aufweisen.Unfortunately, in most situations this data doesn't help you identify the root cause because resource consumption counters have frequent and large variations. Dadurch wird es schwierig, die Daten zu lesen und sie mit dem gemeldeten Problem in Beziehung zu setzen.This makes it hard to read the data and correlate it with the reported issue.

Hinweis

Der Indikator „User Input Delay“ (Benutzereingabeverzögerung) ist nur kompatibel mit:The User Input Delay counter is only compatible with:

  • Windows Server 2019 oder höherWindows Server 2019 or later
  • Windows 10, Version 1809 oder höherWindows 10, version 1809 or later

Der Indikator User Input Delay (Benutzereingabeverzögerung) kann Sie dabei unterstützen, schnell die Grundursache für schlechte Endbenutzer-RDP-Erfahrungen zu bestimmen.The User Input Delay counter can help you quickly identify the root cause for bad end user RDP experiences. Dieser Indikator misst, wie lange jede Benutzereingabe (wie etwa Maus- oder Tastaturbetätigungen) in der Warteschlange verbleibt, bevor sie von einem Prozess aufgenommen wird, und der Indikator funktioniert sowohl in lokalen als auch in Remotesitzungen.This counter measures how long any user input (such as mouse or keyboard usage) stays in the queue before it is picked up by a process, and the counter works in both local and remote sessions.

Die folgende Abbildung zeigt eine ungefähre Darstellung des Flusses von Benutzereingaben vom Client zur Anwendung.The following image shows a rough representation of user input flow from client to application.

Remotedesktop: Fluss von Benutzereingaben vom Remotedesktopclient des Benutzers zur Anwendung

Der User Input Delay-Indikator misst das maximale Delta (innerhalb eines Zeitintervalls) zwischen der Einstellung der Eingabe in die Warteschlange und ihrer Übernahme durch die Anwendung in einer herkömmlichen Nachrichtenschleife, wie im folgenden Diagramm dargestellt:The User Input Delay counter measures the max delta (within an interval of time) between the input being queued and when it's picked up by the app in a traditional message loop, as shown in the following flow chart:

Remotedesktop: Fluss im User Input Delay-Leistungsindikator

Ein wichtiges Detail dieses Indikators besteht darin, dass er die maximale Verzögerung der Benutzereingabe innerhalb eines konfigurierbaren Intervalls meldet.One important detail of this counter is that it reports the maximum user input delay within a configurable interval. Dies ist der längste Zeitraum, den eine Eingabe zum Erreichen der Anwendung benötigt, der sich auf die Geschwindigkeit wichtiger und sichtbarer Aktionen auswirken kann, z. B. der Eingabe.This is the longest time it takes for an input to reach the application, which can impact the speed of important and visible actions like typing.

Beispielsweise würde in der folgenden Tabelle die Verzögerung der Benutzereingabe innerhalb dieses Intervalls als 1.000 ms gemeldet.For example, in the following table, the user input delay would be reported as 1,000 ms within this interval. Der Indikator meldet die längste Verzögerung der Benutzereingabe im Intervall, da die Wahrnehmung des Benutzers als „langsam“ durch die längste erlebte Eingabezeit (das Maximum) bestimmt wird, nicht durch die mittlere Geschwindigkeit aller Eingaben.The counter reports the slowest user input delay in the interval because the user's perception of "slow" is determined by the slowest input time (the maximum) they experience, not the average speed of all total inputs.

Nr.Number 00 11 22
VerzögerungDelay 16 ms16 ms 20 ms20 ms 1.000 ms1,000 ms

Aktivieren und Verwenden der neuen LeistungsindikatorenEnable and use the new performance counters

Um diese neuen Leistungsindikatoren zu verwenden, müssen Sie zuerst einen Registrierungsschlüssel aktivieren, indem Sie den folgenden Befehl ausführen:To use these new performance counters, you must first enable a registry key by running this command:

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

Hinweis

Wenn Sie Windows 10, Version 1809 oder höher oder Windows Server 2019 oder höher verwenden, brauchen Sie den Registrierungsschlüssel nicht zu aktivieren.If you're using Windows 10, version 1809 or later or Windows Server 2019 or later, you won't need to enable the registry key.

Starten Sie dann den Server neu.Next, restart the server. Öffnen Sie anschließend den Systemmonitor, und wählen Sie das Pluszeichen (+) aus, wie im folgenden Screenshot dargestellt.Then, open the Performance Monitor, and select the plus sign (+), as shown in the following screen shot.

Remotedesktop: Screenshot, der das Hinzufügen des User Input Delay-Leistungsindikators veranschaulicht

Anschließend sollten Sie das Dialogfeld „Leistungsindikatoren hinzufügen“ sehen, in dem Sie User Input Delay per Process (Verzögerung der Benutzereingabe nach Prozess) oder User Input Delay per Session (Verzögerung der Benutzereingabe nach Sitzung) auswählen können.After doing that, you should see the Add Counters dialog, where you can select User Input Delay per Process or User Input Delay per Session.

Remotedesktop: Screenshot, der das Hinzufügen von User Input Delay pro Sitzung veranschaulicht

Remotedesktop: Screenshot, der das Hinzufügen von User Input Delay pro Prozess veranschaulicht

Wenn Sie User Input Delay per Process auswählen, sehen Sie die Instances of the selected object (Instanzen des ausgewählten Objekts, also anderes ausgedrückt: die Prozesse) im SessionID:ProcessID <Process Image>-Format.If you select User Input Delay per Process, you'll see the Instances of the selected object (in other words, the processes) in SessionID:ProcessID <Process Image> format.

Wenn beispielsweise die Rechner-App in einer Sitzung mit ID 1 ausgeführt wird, sehen Sie 1:4232 <Calculator.exe>.For example, if the Calculator app is running in a Session ID 1, you'll see 1:4232 <Calculator.exe>.

Hinweis

Es werden nicht alle Prozesse dargestellt.Not all processes are included. Sie sehen keine Prozesse, die als SYSTEM ausgeführt werden.You won't see any processes that are running as SYSTEM.

Der Indikator beginnt sofort nach dem Hinzufügen, die Verzögerung der Benutzereingabe zu melden.The counter starts reporting user input delay as soon as you add it. Beachten Sie, dass der Maßstab standardmäßig auf ein Maximum von 100 ms festgelegt ist.Note that the maximum scale is set to 100 (ms) by default.

Remotedesktop: Beispiel für Aktivität für User Input Delay pro Prozess im Systemmonitor

Sehen wir uns als nächstes die User Input Delay per Session (Verzögerung der Benutzereingabe pro Sitzung) an.Next, let's look at the User Input Delay per Session. Es gibt Instanzen für jede Sitzungs-ID, und ihre Indikatoren zeigen die Verzögerung der Benutzereingabe jedes Prozesses innerhalb der angegebenen Sitzung.There are instances for each session ID, and their counters show the user input delay of any process within the specified session. Darüber hinaus gibt es zwei Instanzen mit den Bezeichnungen „Max“ (die maximale Verzögerung der Benutzereingabe über alle Sitzungen) und „Average“ (Durchschnitt; der Durchschnittswert aus allen Sitzungen).In addition, there are two instances called "Max" (the maximum user input delay across all sessions) and "Average" (the average acorss all sessions).

Diese Tabelle zeigt ein visuelles Beispiel dieser Instanzen.This table shows a visual example of these instances. (Sie können die gleichen Informationen im Systemmonitor abrufen, indem Sie zum Diagrammtyp „Bericht“ wechseln.)(You can get the same information in Perfmon by switching to the Report graph type.)

IndikatortypType of counter InstanzennameInstance name Gemeldete Verzögerung (ms)Reported delay (ms)
Verzögerung der Benutzereingabe pro ProzessUser Input Delay per process 1:4232 <Calculator.exe>1:4232 <Calculator.exe> 200200
Verzögerung der Benutzereingabe pro ProzessUser Input Delay per process 2:1000 <Calculator.exe>2:1000 <Calculator.exe> 1616
Verzögerung der Benutzereingabe pro ProzessUser Input Delay per process 1:2000 <Calculator.exe>1:2000 <Calculator.exe> 3232
Verzögerung der Benutzereingabe pro SitzungUser Input Delay per session 11 200200
Verzögerung der Benutzereingabe pro SitzungUser Input Delay per session 22 1616
Verzögerung der Benutzereingabe pro SitzungUser Input Delay per session DurchschnittAverage 108108
Verzögerung der Benutzereingabe pro SitzungUser Input Delay per session MaxMax 200200

Einsatz der Indikatoren in einem überlasteten SystemCounters used in an overloaded system

Sehen wir uns jetzt an, wie der Bericht aussieht, wenn die Leistung für eine App herabgesetzt ist.Now let's look at what you'll see in the report if performance for an app is degraded. Das folgende Diagramm zeigt Messwerte für Benutzer, die remote in Microsoft Word arbeiten.The following graph shows readings for users working remotely in Microsoft Word. In diesem Fall lässt die Leistung des RDSH-Servers im Lauf der Zeit nach, wenn sich mehr Benutzer anmelden.In this case, the RDSH server performance degrades over time as more users log in.

Remotedesktop: Ein Leistungsdiagrammbeispiel für den RDSH-Server, der Microsoft Word ausführt

So lesen sich die Linien des Diagramms:Here's how to read the graph's lines:

  • Die pinkfarbene Linie zeigt die Anzahl der Sitzungen, die beim Server angemeldet sind.The pink line shows the number of sessions signed in on the server.
  • Die rote Linie ist die CPU-Auslastung.The red line is the CPU usage.
  • Die grüne Linie ist die maximale Verzögerung der Benutzereingaben über alle Sitzungen.The green line is the maximum user input delay across all sessions.
  • Die blaue Linie (in diesem Diagramm schwarz dargestellt) stellt die durchschnittliche Verzögerung der Benutzereingabe über alle Sitzungen dar.The blue line (displayed as black in this graph) represents average user input delay across all sessions.

Sie werden feststellen, dass ein Zusammenhang zwischen den Spitzen der CPU-Auslastung und der Verzögerung der Benutzereingabe besteht – wenn die CPU stärker ausgelastet wird, erhöht sich die Verzögerung der Benutzereingaben.You'll notice that there's a correlation between CPU spikes and user input delay—as the CPU gets more usage, the user input delay increases. Außerdem gelangt die CPU-Auslastung näher an 100 %, während dem System weitere Benutzer hinzugefügt werden, was zu häufigeren Spitzen bei der Verzögerung der Benutzereingaben führt.Also, as more users get added to the system, CPU usage gets closer to 100%, leading to more frequent user input delay spikes. Dieser Indikator ist einerseits sehr nützlich in Fällen, in denen die Serverressourcen zur Neige gehen, andererseits können Sie ihn auch verwenden, um die Verzögerung der Benutzereingaben im Zusammenhang einer bestimmten Anwendung nachzuverfolgen.While this counter is very useful in cases where the server runs out of resources, you can also use it to track user input delay related to a specific application.

KonfigurationsoptionenConfiguration Options

Bei der Verwendung dieses Leistungsindikators ist zu beachten, dass er die Verzögerung der Benutzereingaben standardmäßig in einem Intervall von 1.000 ms meldet.An important thing to remember when using this performance counter is that it reports user input delay on an interval of 1,000 ms by default. Wenn Sie die Intervalleigenschaft des Leistungsindikatorbeispiels auf einen anderen Wert festlegen (wie im folgenden Screenshot dargestellt), ist der gemeldete Wert falsch.If you set the performance counter sample interval property (as shown in the following screenshot) to anything different, the reported value will be incorrect.

Remotedesktop: Die Eigenschaften Ihres Systemmonitors

Um dies zu beheben, können Sie den folgenden Registrierungsschlüssel übereinstimmend mit dem Intervall festlegen (in Millisekunden), das Sie verwenden möchten.To fix this, you can set the following registry key to match the interval (in milliseconds) that you want to use. Wenn wir beispielsweise „Stichprobe alle x Sekunden“ auf 5 Sekunden festlegen, müssen wir diesen Schlüssel auf 5.000 ms festlegen.For example, if we change Sample every x seconds to 5 seconds, we need to set this key to 5000 ms.

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

"LagCounterInterval"=dword:00005000

Hinweis

Wenn Sie Windows 10, Version 1809 oder höher, oder Windows Server 2019 oder höher verwenden, brauchen Sie LagCounterInterval nicht festzulegen, um den Leistungsindikator zu korrigieren.If you're using Windows 10, version 1809 or later or Windows Server 2019 or later, you don't need to set LagCounterInterval to fix the performance counter.

Unter dem gleichen Registrierungsschlüssel haben wir außerdem zwei Schlüssel hinzugefügt, die Sie möglicherweise nützlich finden:We've also added a couple of keys you might find helpful under the same registry key:

LagCounterImageNameFirst: Legen Sie diesen Schlüssel auf DWORD 1 fest (Standardwert 0, oder der Schlüssel ist nicht vorhanden).LagCounterImageNameFirst — set this key to DWORD 1 (default value 0 or key does not exist). Dadurch werden die Namen der Indikatoren in „Imagename Sitzungs-ID:Prozess-ID“ geändert.This changes the counter names to "Image Name SessionID:ProcessId." Beispiel: „explorer <1:7964>“.For example, "explorer <1:7964>." Dies ist nützlich, wenn Sie nach dem Imagenamen sortieren möchten.This is useful if you want to sort by image name.

LagCounterShowUnknown: Legen Sie diesen Schlüssel auf DWORD 1 fest (Standardwert 0, oder der Schlüssel ist nicht vorhanden).LagCounterShowUnknown — set this key to DWORD 1 (default value 0 or key does not exist). Dies zeigt alle Prozesse an, die als Dienste oder SYSTEM ausgeführt werden.This shows any processes that are running as services or SYSTEM. Einige Dienste werden mit „?“ als Wert für die Sitzung angezeigt.Some processes will show up with their session set as "?."

So sieht es aus, wenn Sie beide Schlüssel aktivieren:This is what it looks like if you turn both keys on:

Remotedesktop: Systemmonitor, wenn beide Schlüssel aktiviert sind

Verwenden der neuen Indikatoren mit nicht von Microsoft stammenden ToolsUsing the new counters with non-Microsoft tools

Überwachungstools können diesen Indikator unter Verwendung von Leistungsindikatoren nutzen.Monitoring tools can consume this counter by Using Performance Counters.

Teilen Sie Ihr Feedback mitShare your feedback

Sie können Feedback zu dieser Funktion über den Feedback-Hub senden.You can submit feedback for this feature through the Feedback Hub. Wählen Sie Apps > Alle anderen Apps aus, und schließen Sie „RDS-Leistungsindikatoren: Systemmonitor“ in den Titel Ihres Beitrags ein.Select Apps > All other apps and include "RDS performance counters—performance monitor" in your post's title.