- 01/19/2021
- 5 minuter att läsa
-
- l
- H
- e
- D
- i
-
+2
gäller för: Windows Server 2019, Windows 10
ett av de svåraste problemen att diagnostisera är dålig applikationsprestanda-applikationerna körs långsamt eller svarar inte. Traditionellt börjar du din diagnos genom att samla CPU, minne, diskingång/ – utgång och andra mätvärden och sedan använda verktyg som Windows Performance Analyzer för att försöka lista ut vad som orsakar problemet. Tyvärr, i de flesta situationer hjälper dessa data inte dig att identifiera grundorsaken eftersom resursförbrukningsräknare har frekventa och stora variationer. Detta gör det svårt att läsa data och korrelera det med det rapporterade problemet.
Obs
Användarinmatningsfördröjningsräknaren är endast kompatibel med:
- Windows Server 2019 eller senare
- Windows 10, version 1809 eller senare
Användarinmatningsfördröjningsräknaren kan hjälpa dig att snabbt identifiera grundorsaken till dåliga slutanvändares RDP-upplevelser. Denna räknare mäter hur länge någon användarinmatning (t.ex. mus-eller tangentbordsanvändning) stannar i kön innan den hämtas av en process, och räknaren fungerar i både lokala och fjärrsessioner.
följande bild visar en grov representation av användarinmatningsflödet från klient till applikation.
Användarinmatningsfördröjningsräknaren mäter max delta (inom ett tidsintervall) mellan ingången som står i kö och när den hämtas av appen i en traditionell meddelandeslinga, som visas i följande flödesschema:
en viktig detalj i denna räknare är att den rapporterar den maximala användarinmatningsfördröjningen inom ett konfigurerbart intervall. Det här är den längsta tiden det tar för en inmatning att nå applikationen, vilket kan påverka hastigheten på viktiga och synliga åtgärder som att skriva.
till exempel i följande tabell skulle användarinmatningsfördröjningen rapporteras som 1000 ms inom detta intervall. Räknaren rapporterar den långsammaste användarinmatningsfördröjningen i intervallet eftersom användarens uppfattning om” långsam ” bestäms av den långsammaste inmatningstiden (det maximala) de upplever, inte medelhastigheten för alla totala ingångar.
nummer | 0 | 1 | 2 |
---|---|---|---|
fördröjning | 16 ms | 20 ms | 1000 ms |
aktivera och använd de nya prestandaräknarna
för att 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
Obs!
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 Performance Monitor och välj plustecknet (+), som visas i följande skärmbild.
efter att ha gjort det bör du se dialogrutan Lägg till räknare, där du kan välja Användarinmatningsfördröjning per Process eller Användarinmatningsfördröjning per Session.
om du väljer Användarinmatningsfördröjning per Process ser du instanserna av det valda objektet (med andra ord processerna) i formatet SessionID:ProcessID <Process Image>
.
om Kalkylatorappen till exempel körs i ett sessions-ID 1 ser du 1:4232 <Calculator.exe>
.
Obs
inte alla processer ingår. Du kommer inte att se några processer som körs som SYSTEM.
räknaren börjar rapportera användarinmatningsfördröjning så snart du lägger till den. Observera att den maximala skalan är inställd på 100 (ms) som standard.
Låt oss sedan titta på Användarinmatningsfördröjningen per Session. Det finns instanser för varje sessions-ID, och deras räknare visar användarens inmatningsfördröjning av någon process inom den angivna sessionen. Dessutom finns det två instanser som kallas ” Max ”(den maximala användarinmatningsfördröjningen över alla sessioner) och” Average ” (den genomsnittliga acorss alla sessioner).
denna tabell visar ett visuellt exempel på dessa instanser. (Du kan få samma information i Perfmon genom att byta till Rapportgraftypen.)
typ av räknare | Instansnamn | rapporterad fördröjning (ms) |
---|---|---|
Användarinmatningsfördröjning per process | 1:4232 <kalkylator.exe> | 200 |
Användarinmatningsfördröjning per process | 2:1000 <kalkylator.exe> | 16 |
Användarinmatningsfördröjning per process | 1:2000 <kalkylator.exe> | 32 |
fördröjning av användarinmatning per session | 1 | 200 |
fördröjning av användarinmatning per session | 2 | 16 |
Användarinmatningsfördröjning per session | genomsnitt | 108 |
Användarinmatningsfördröjning per session | Max | 200 |
räknare som används i ett överbelastat system
låt oss nu titta på vad du ser i rapporten om prestanda för en app försämras. Följande diagram visar avläsningar för användare som arbetar på distans i Microsoft Word. I det här fallet försämras rdsh-serverns prestanda över tiden när fler användare loggar in.
så här läser du grafens linjer:
- den rosa linjen visar antalet inloggade sessioner på servern.
- den röda linjen är CPU-användningen.
- den gröna linjen är den maximala användarinmatningsfördröjningen för alla sessioner.
- den blå linjen (visas som svart i denna graf) representerar Genomsnittlig användarinmatningsfördröjning över alla sessioner.
du märker att det finns en korrelation mellan CPU—spikar och användarinmatningsfördröjning-eftersom CPU: n får mer användning ökar användarinmatningsfördröjningen. När fler användare läggs till i systemet kommer CPU-användningen närmare 100%, vilket leder till mer frekventa fördröjningsspikar för användarinmatning. Även om denna räknare är mycket användbar i de fall där servern tar slut på resurser, kan du också använda den för att spåra användarinmatningsfördröjning relaterad till en specifik applikation.
konfigurationsalternativ
en viktig sak att komma ihåg när du använder denna prestandaräknare är att den rapporterar användarinmatningsfördröjning med ett intervall på 1 000 ms som standard. Om du ställer in egenskapen performance counter sample interval (som visas i följande skärmdump) till något annat, kommer det rapporterade värdet att vara felaktigt.
för att åtgärda detta kan du ställa in följande registernyckel så att den matchar intervallet (i millisekunder) som du vill använda. Om vi till exempel byter prov varje x sekund till 5 sekunder måste vi ställa in den här nyckeln till 5000 ms.
"LagCounterInterval"=dword:00005000
Obs!
om du använder Windows 10, version 1809 eller senare eller Windows Server 2019 eller senare behöver du inte ställa in LagCounterInterval för att fixa prestandaräknaren.
vi har också lagt till ett par nycklar som du kan hitta till hjälp under samma registernyckel:
LagCounterImageNameFirst — Ställ in den här nyckeln till DWORD 1
(standardvärde 0 eller nyckel finns inte). Detta ändrar räknarnamnen till ” Image Name SessionID:ProcessId.”Till exempel” explorer <1:7964>.”Detta är användbart om du vill sortera efter bildnamn.
LagCounterShowUnknown — Ställ in den här nyckeln till DWORD 1
(standardvärde 0 eller nyckel finns inte). Detta visar alla processer som körs som tjänster eller SYSTEM. Vissa processer kommer att dyka upp med sin session inställd som”?.”
så här ser det ut om du slår på båda tangenterna:
använda de nya räknarna med icke-Microsoft-verktyg
övervakningsverktyg kan konsumera denna räknare med hjälp av prestandaräknare.
dela din feedback
du kan skicka feedback för den här funktionen via Feedback Hub. Välj Appar > alla andra appar och inkludera ”RDS performance counters-performance monitor” i ditt inläggs Titel.