Dela via


Använda prestandaräknare för att diagnostisera problem med appprestanda på fjärrskrivbordssessionsvärdar

Dåliga programprestanda är ett av de svåraste problemen att diagnostisera, särskilt för långsamma program eller program som inte svarar. Traditionellt startar du din diagnos genom att samla in CPU, minne, indata/utdata för diskar och andra mått. Sedan använder du verktyg som Windows Performance Analyzer för att försöka ta reda på vad som orsakar problemet. I de flesta fall hjälper dessa data dig tyvärr inte att identifiera rotorsaken eftersom resursförbrukningsräknare har frekventa och stora variationer. Den här situationen gör det svårt att läsa data och korrelera dem med det rapporterade problemet.

Anmärkning

Räknaren för fördröjning av användarindata är endast kompatibel med:

  • Windows Server 2019 eller senare
  • Windows 10, version 1809 eller senare

Räknaren för fördröjning av användarindata kan hjälpa dig att snabbt identifiera rotorsaken till dåliga prestandaupplevelser för slutanvändaren fjärrskrivbord. Den här räknaren mäter hur länge någon användarinmatning, till exempel mus- eller tangentbordsanvändning, stannar kvar i kön innan en process hämtar dem. Räknaren fungerar i både lokala sessioner och fjärrsessioner.

Följande bild visar en grov representation av användarindataflödet från klient till program.

Diagram över användarindataflöden från användarnas Fjärrskrivbordsklient till programmet.

Räknaren för fördröjning av användarindata mäter maxdeltat inom ett tidsintervall mellan indata som placeras i kö och när appen i en traditionell meddelandeloop plockar upp den. En traditionell meddelandeloop visas i följande flödesdiagram:

Diagram över prestandaräknarflöde för fördröjning av användarindata.

En viktig detalj i den här räknaren är att den rapporterar maximal fördröjning av användarindata inom ett konfigurerbart intervall. Den här fördröjningen är den längsta tid det tar för indata att nå programmet, vilket kan påverka hastigheten för viktiga och synliga åtgärder som att skriva.

I följande tabell rapporteras till exempel fördröjningen av användarindata som 1 000 ms inom det här intervallet. Räknaren rapporterar den långsammaste fördröjningen av användarindata i intervallet. Räknaren rapporterar denna fördröjning eftersom användarens uppfattning om "långsam" bestäms av den långsammaste tiden det tar att mata in data (den maximala) som de upplever och inte av genomsnittshastigheten för alla inmatningstider.

Nummer 0 1 2
Försening 16 ms 20 ms 1 000 ms

Aktivera och använda de nya prestandaräknarna

Om du vill använda dessa nya prestandaräknare måste du först aktivera en registernyckel genom att köra det här kommandot:

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

Anmärkning

Om du använder Windows 10, version 1809 eller senare eller Windows Server 2019 eller senare behöver du inte aktivera registernyckeln.

Starta sedan om servern. Öppna sedan prestandaövervakaren och välj plusikonen (+), som du ser på följande skärmbild:

Skärmbild som visar hur du lägger till prestandaräknaren för fördröjning av användarindata.

Därefter bör du se dialogrutan Lägg till räknare , där du kan välja Fördröjning av användarindata per process eller fördröjning av användarindata per session.

Skärmbild som visar hur du lägger till användarindatafördröjning per session.

Skärmbild som visar hur du lägger till fördröjning av användarindata per process.

När du väljer Fördröjning av användarindata per process ser du instanserna av det markerade objektet, det vill säga processerna i SessionID:ProcessID <Process Image> format.

Om kalkylatorappen till exempel körs i ett sessions-ID 1 visas 1:4232 <Calculator.exe>.

Anmärkning

Alla processer ingår inte. Du ser inga processer som körs som SYSTEM.

Räknaren börjar rapportera fördröjning av användarindata så snart du lägger till den. Den maximala skalan är inställd på 100 (ms) som standard.

Skärmbild av ett exempel på aktivitet för fördröjning av användarindata per process i prestandaövervakaren.

Se sedan fördröjning av användarindata per session. Det finns instanser för varje sessions-ID och deras räknare visar användarens indatafördröjning för alla processer inom den angivna sessionen. Dessutom finns det två instanser som kallas "Max" (den maximala fördröjningen för användarindata för alla sessioner) och "Average" (medelvärdet för alla sessioner).

Den här tabellen visar ett visuellt exempel på dessa instanser. Du kan få samma information i Perfmon genom att växla till diagramtypen Rapport.

Typ av räknare Instansnamn Rapporterad fördröjning (ms)
Fördröjning av användarindata per process 1:4232 <Calculator.exe> 200
Fördröjning av användarindata per process 2:1000 <Calculator.exe> 16
Fördröjning av användarindata per process 1:2000 <Calculator.exe> 32
Fördröjning av användarinmatning per session 1 200
Fördröjning av användarindata per session 2 16
Fördröjning av användarinmatning per session Genomsnitt 108
Fördröjning av användarindata per session Max 200

Räknare som används i ett överbelastat system

Nu ska vi titta på vad du ser i rapporten om prestandan för en app försämras. I följande diagram visas avläsningar för användare som arbetar via fjärranslutning i Microsoft Word. I det här fallet försämras prestandan med tiden när fler användare loggar in via fjärranslutning.

Skärmbild av ett exempel på prestandadiagram för RDSH-servern som kör Microsoft Word.

Så här läser du diagrammets rader:

  • Den rosa raden visar antalet sessioner som är inloggade på servern.
  • Den röda linjen är CPU-användningen.
  • Den gröna linjen är den maximala fördröjningen för användarindata över alla sessioner.
  • Den blå linjen, som visas som svart i det här diagrammet, representerar genomsnittlig användarspecifik fördröjning av indata över alla sessioner.

Det finns en korrelation mellan CPU-toppar och fördröjning i användarens inmatning. När processorn får mer användning ökar fördröjningen för användarens indata. I takt med att fler användare läggs till i systemet närmar sig CPU-användningen 100 %, vilket leder till att fördröjningarna av användarnas indata blir allt mer frekventa. Även om den här räknaren är användbar i fall där servern får slut på resurser, kan den även spåra fördröjning i användarens indata relaterad till en specifik applikation.

Konfigurationsalternativ

En viktig sak att komma ihåg när du använder den här prestandaräknaren är att den rapporterar fördröjning av användarindata med ett intervall på 1 000 ms som standard. Om du anger exempelintervallegenskapen för prestandaräknaren, som du ser i följande skärmbild, till något annat, blir det rapporterade värdet felaktigt.

Skärmbild av dialogrutan Egenskaper för prestandaövervakare.

Du kan åtgärda problemet genom att ange följande registernyckel så att den matchar det intervall (i millisekunder) som du vill använda. Om du till exempel ändrar Exempel var 1 sekund till Exempel var 5:e sekund måste du ange den här nyckeln till 5 000 ms.

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

"LagCounterInterval"=dword:00005000

Anmärkning

Om du använder Windows 10, version 1809 eller senare eller Windows Server 2019 eller senare behöver du inte ange LagCounterInterval för att åtgärda prestandaräknaren.

Vi har också lagt till några nycklar som du kan ha nytta av under samma registernyckel:

LagCounterImageNameFirst– ange den här nyckeln till DWORD 1 (standardvärdet 0 eller nyckeln finns inte). Den här nyckeln ändrar räknarnamnen till "Image Name <SessionID:ProcessId>" till exempel "explorer <1:7964>". Den här ändringen är användbar om du vill sortera efter bildnamn.

LagCounterShowUnknown– ange den här nyckeln till DWORD 1 (standardvärdet 0 eller nyckeln finns inte). Den här nyckeln visar alla processer som körs som tjänster eller SYSTEM. Vissa processer visas med sessionen som "?".

Följande bild visar hur det ser ut med båda nycklarna på:

Skärmbild av prestandaövervakaren med båda nycklarna på.

Använda de nya räknarna med verktyg som inte kommer från Microsoft

Övervakningsverktyg kan använda den här räknaren genom att använda prestandaräknare.

Dela din feedback

Du kan skicka feedback för den här funktionen via feedbackhubben. Välj Appar > Alla andra appar och inkludera "RDS-prestandaräknare – prestandaövervakare" i inläggets rubrik.