- 01/19/2021
- 5 protokół do czytania
-
- l
- H
- e
- D
- i
-
+2
dotyczy: Windows Server 2019, Windows 10
jednym z najtrudniejszych problemów do zdiagnozowania jest słaba wydajność aplikacji—aplikacje działają wolno lub nie reagują. Tradycyjnie diagnozę rozpoczynasz od zebrania procesora, pamięci, wejścia/wyjścia dysku i innych wskaźników, a następnie używasz narzędzi takich jak Windows Performance Analyzer, aby dowiedzieć się, co jest przyczyną problemu. Niestety w większości sytuacji Dane te nie pomagają zidentyfikować przyczyny źródłowej, ponieważ liczniki zużycia zasobów mają częste i duże wahania. Utrudnia to odczytanie danych i skorelowanie ich ze zgłoszonym problemem.
Uwaga
Licznik opóźnienia wejścia użytkownika jest kompatybilny tylko z:
- Windows Server 2019 lub nowszy
- Windows 10, wersja 1809 lub nowsza
licznik opóźnienia wejścia użytkownika może pomóc szybko zidentyfikować przyczynę złych doświadczeń użytkownika końcowego RDP. Licznik ten mierzy, jak długo Dane wejściowe użytkownika (takie jak użycie myszy lub klawiatury) pozostają w kolejce, zanim zostaną odebrane przez proces, a licznik działa zarówno w sesjach lokalnych, jak i zdalnych.
poniższy obraz przedstawia przybliżoną reprezentację przepływu danych wejściowych użytkownika od klienta do aplikacji.
Licznik opóźnienia wejścia użytkownika mierzy maksymalną wartość delta (w odstępie czasu) między kolejkowaniem wejścia a jego odebraniem przez aplikację w tradycyjnej pętli komunikatów, jak pokazano na poniższym schemacie blokowym:
jednym z ważnych szczegółów tego licznika jest to, że raportuje maksymalne opóźnienie wejścia użytkownika w konfigurowalnym interwale. Jest to najdłuższy czas potrzebny na wejście do aplikacji, co może wpłynąć na szybkość ważnych i widocznych działań, takich jak pisanie.
na przykład w poniższej tabeli opóźnienie wejścia użytkownika zostanie zgłoszone jako 1000 ms w tym przedziale. Licznik zgłasza najwolniejsze opóźnienie wejścia użytkownika w interwale, ponieważ postrzeganie przez użytkownika „wolnego” zależy od najwolniejszego czasu wejścia (maksymalnego), którego doświadcza, a nie średniej prędkości wszystkich łącznych wejść.
Liczba | 0 | 1 | 2 |
---|---|---|---|
opóźnienie | 16 ms | 20 ms | 1000 ms |
Włączanie i używanie nowych liczników wydajności
aby korzystać z tych nowych liczników wydajności, należy najpierw włączyć klucz rejestru, uruchamiając to polecenie:
reg add "HKLM\System\CurrentControlSet\Control\Terminal Server" /v "EnableLagCounter" /t REG_DWORD /d 0x1 /f
Uwaga
jeśli używasz systemu Windows 10, wersji 1809 lub nowszej lub systemu Windows Server 2019 lub nowszego, nie musisz włączać klucza rejestru.
następnie uruchom ponownie serwer. Następnie otwórz monitor wydajności i wybierz znak plus (+), jak pokazano na poniższym zrzucie ekranu.
po wykonaniu tej czynności powinieneś zobaczyć okno dialogowe Dodaj liczniki, w którym możesz wybrać opóźnienie wejścia użytkownika na proces lub opóźnienie wejścia użytkownika na sesję.
jeśli wybierzesz Opóźnienie wejścia użytkownika dla procesu, zobaczysz instancje wybranego obiektu (innymi słowy procesy) w formacie SessionID:ProcessID <Process Image>
.
na przykład, jeśli aplikacja Kalkulator działa w sesji o ID 1, zobaczysz 1:4232 <Calculator.exe>
.
Uwaga
nie wszystkie procesy są uwzględnione. Nie zobaczysz żadnych procesów, które są uruchomione jako SYSTEM.
licznik rozpoczyna raportowanie opóźnienia wejścia użytkownika, gdy tylko go dodasz. Należy zauważyć, że maksymalna skala jest domyślnie ustawiona na 100 (ms).
następnie spójrzmy na opóźnienie wejścia użytkownika na sesję. Istnieją instancje dla każdego identyfikatora sesji, a ich liczniki pokazują opóźnienie wejścia użytkownika dowolnego procesu w określonej sesji. Ponadto istnieją dwie instancje o nazwie „Max” (maksymalne opóźnienie wprowadzania danych przez użytkownika we wszystkich sesjach) i „Average” (średnie opóźnienie wszystkich sesji).
ta tabela pokazuje wizualny przykład tych instancji. (Te same informacje można uzyskać w Perfmon, przełączając się na typ wykresu raportu.)
typ licznika | nazwa instancji | zgłoszone opóźnienie (ms) |
---|---|---|
Opóźnienie wejścia użytkownika na proces | 1:4232 <Kalkulator.exe> | 200 |
Opóźnienie wejścia użytkownika na proces | 2:1000 <Kalkulator.exe> | 16 |
Opóźnienie wejścia użytkownika na proces | 1:2000 <Kalkulator.exe> | 32 |
Opóźnienie wejścia użytkownika na sesję | 1 | 200 |
Opóźnienie wejścia użytkownika na sesję | 2 | 16 |
Opóźnienie wejścia użytkownika na sesję | średnie | 108 |
Opóźnienie wejścia użytkownika na sesję | Maks | 200 |
liczniki używane w przeciążonym systemie
teraz spójrzmy na to, co zobaczysz w raporcie, jeśli wydajność aplikacji zostanie obniżona. Poniższy wykres przedstawia odczyty dla użytkowników pracujących zdalnie w programie Microsoft Word. W takim przypadku wydajność serwera RDSH zmniejsza się z czasem, gdy loguje się więcej użytkowników.
oto jak odczytać linie wykresu:
- różowa linia pokazuje liczbę sesji zalogowanych na serwerze.
- czerwona linia to użycie procesora.
- zielona linia to maksymalne opóźnienie wejścia użytkownika we wszystkich sesjach.
- Niebieska linia (wyświetlana jako czarna na tym wykresie) reprezentuje średnie opóźnienie wejścia użytkownika we wszystkich sesjach.
zauważysz, że istnieje korelacja między skokami procesora a opóźnieniem wejścia użytkownika—w miarę zwiększania zużycia procesora, opóźnienie wejścia użytkownika wzrasta. Ponadto, w miarę dodawania większej liczby użytkowników do systemu, zużycie procesora zbliża się do 100%, co prowadzi do częstszych skoków opóźnienia wprowadzania danych przez użytkownika. Chociaż licznik ten jest bardzo przydatny w przypadkach, gdy serwerowi kończą się zasoby, możesz go również użyć do śledzenia opóźnienia wprowadzania danych użytkownika związanego z konkretną aplikacją.
opcje konfiguracyjne
ważną rzeczą do zapamiętania podczas korzystania z tego licznika wydajności jest to, że domyślnie zgłasza opóźnienie wejścia użytkownika w przedziale 1000 ms. Jeśli ustawisz właściwość performance counter sample interval (jak pokazano na poniższym zrzucie ekranu) na coś innego, zgłoszona wartość będzie nieprawidłowa.
aby to naprawić, możesz ustawić następujący klucz rejestru, aby pasował do interwału (w milisekundach), którego chcesz użyć. Na przykład, jeśli zmienimy próbkę co x sekund na 5 sekund, musimy ustawić ten klucz na 5000 ms.
"LagCounterInterval"=dword:00005000
Uwaga
jeśli używasz systemu Windows 10, wersji 1809 lub nowszej lub Windows Server 2019 lub nowszej, nie musisz ustawiać LagCounterInterval, aby naprawić licznik wydajności.
dodaliśmy również kilka kluczy, które mogą okazać się pomocne pod tym samym kluczem rejestru:
LagCounterImageNameFirst — Ustaw ten klucz na DWORD 1
(domyślna wartość 0 lub klucz nie istnieje). Spowoduje to zmianę nazw liczników na ” Image Name SessionID: ProcessId.”Na przykład” odkrywca <1:7964>.”Jest to przydatne, jeśli chcesz sortować według nazwy obrazu.
LagCounterShowUnknown-Ustaw ten klucz na DWORD 1
(domyślna wartość 0 lub klucz nie istnieje). To pokazuje wszystkie procesy, które są uruchomione jako usługi lub SYSTEM. Niektóre procesy pojawią się z ich sesją ustawioną jako”?.”
tak to wygląda po włączeniu obu klawiszy:
Korzystanie z nowych liczników z narzędziami innych niż Microsoft
narzędzia monitorujące mogą zużywać ten licznik za pomocą liczników wydajności.
podziel się swoją opinią
możesz przesłać opinię o tej funkcji za pośrednictwem Centrum opinii. Wybierz Aplikacje > wszystkie inne aplikacje i dodaj „liczniki wydajności RDS-Monitor wydajności” w tytule postu.