Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł ułatwia rozwiązywanie problemów z używaniem monitor wydajności.
Co to jest monitor wydajności (perfmon)?
Dostępne w różnych iteracji od wczesnych dni systemu Windows, monitor wydajności to przystawka MMC w systemie Windows, która pomaga monitorować użycie systemu i różne metryki wydajności. Widok domyślny podczas otwierania pokazuje kilka różnych obszarów i metryk czasu rzeczywistego, które obejmują:
- monitor wydajności: wyświetlanie metryk w czasie rzeczywistym
- Zestawy modułów zbierających dane: zdefiniowane zbieranie danych w danym interwale czasu
- Raporty: dane zebrane w zestawach modułów zbierających dane
Pytania przed zbieraniem danych
Po napotkaniu problemów dowiedz się więcej o tym, co się stało przed wszelkimi rozwiązywaniami problemów i zbieraniem danych.
- Jakiego rodzaju problem?
- Czy ten problem można odtworzyć?
- Czy problem występuje sporadycznie? Jeśli tak, jakie akcje wykonał użytkownik?
- Czy zaobserwowano wzorzec? Jeśli tak, jakiego rodzaju wzorzec?
- Czy zdarza się to tylko raz i nie występuje ponownie?
Na przykład sporadycznie występuje problem z wysokim użyciem procesora CPU. Czasami ten problem występuje pięć minut po uruchomieniu systemu, czasami po dwóch godzinach itd. Nie zaobserwowano wzorca. Podczas wyszukiwania Menedżera zadań lub innych narzędzi do monitorowania nie można go obserwować lub nie masz pewności, czy dane wyjściowe z narzędzi do monitorowania pokazują, co się dzieje.
W takiej sytuacji potrzebne jest ogólne omówienie zasobów systemowych. Można to osiągnąć za pomocą długotrwałych monitor wydajności.
Uwaga
monitor wydajności nie ma dostępu do jądra i nie rejestruje takich informacji. Ponadto monitor wydajności jest lekki w porównaniu z innymi narzędziami rejestrowania w przypadku problemów z wysokim użyciem procesora CPU i jest to wbudowane narzędzie. Możesz uruchomić monitor wydajności lokalnie lub zdalnie.
Uruchamianie monitor wydajności lokalnie
W razie potrzeby można dodawać liczniki. Otwórz wiersz polecenia z podwyższonym poziomem uprawnień i uruchom następujące polecenia:
Utwórz zestaw modułów zbierających dane:
Logman.exe create counter CORE_%computername% -f bin -v mmddhhmm -max 2048 -c "\Memory\*" "\Cache\*" "\Objects\*" "\Network Interface(*)\*" "\Paging File(*)\*" "\PhysicalDisk(*)\*" "\LogicalDisk(*)\*" "\Processor(*)\*" "\Processor Information(*)\*" "\Process(*)\*" "\Server\*" "\System\*" "\Server Work Queues(*)\*" "\Terminal Services\*" "\Terminal Services Session(*)\*" -si 00:00:01
Uwaga
-max 2048
oznacza, że maksymalny rozmiar pliku dziennika wynosi 2 GB.-si 00:00:01
oznacza, że interwał jest1
drugi. To ustawienie można zmienić na podstawie Twoich potrzeb.Uruchom zestaw modułu zbierającego dane:
logman start CORE_%computername%
Zatrzymaj ślad, który będzie przechowywany w folderze c:\perflogs\Admin:
logman stop CORE_%computername%
Zdalne uruchamianie monitor wydajności
Aby skonfigurować monitor wydajności do monitorowania systemu zdalnego, otwórz wiersz polecenia z podwyższonym poziomem uprawnień i uruchom następujące polecenia:
Utwórz zestaw modułów zbierających dane:
Logman create counter <LOGNAME> -u <DOMAIN\USERNAME> * -f bincirc -v mmddhhmm -max 500 -c "\\<SERVERNAME>\LogicalDisk(*)\*" "\\<SERVERNAME>\Memory\*" "\\<SERVERNAME>\Network Interface(*)\*" "\\<SERVERNAME>\Paging File(*)\*" "\\<SERVERNAME>\PhysicalDisk(*)\*" "\\<SERVERNAME>\Process(*)\*" "\\<SERVERNAME>\Redirector\*" "\\<SERVERNAME>\Server\*" "\\<SERVERNAME>\System\*" "\\<SERVERNAME>\Terminal Services\*" "\\<SERVERNAME>\Processor(*)\*" "\\<SERVERNAME>\Cache\*" -si 00:00:02
Uwaga
Zastąp ciąg <DOMAIN\USERNAME> odpowiednimi poświadczeniami użytkownika i <serverNAME> nazwą problematycznego serwera.
Uruchom moduł zbierający dane, uruchamiając następujące polecenie:
logman start <LOGNAME>
Gdy serwer przestanie odpowiadać, zatrzymaj moduł zbierający dane, uruchamiając następujące polecenie:
logman stop <LOGNAME>
Dziennik monitor wydajności zostanie umieszczony w folderze C:\PERFLOGS. Następnie spakuj .blg
plik i przekaż go do obszaru roboczego po wystąpieniu problemu.
Po uruchomieniu monitor wydajności przez jeden lub dwa dni robocze, możesz przeanalizować dziennik, aby sprawdzić, czy istnieją jakieś wzorce. Które procesy podsycają procesor CPU? A czy procesy są takie same, czy różne każdego dnia lub godziny?
Na podstawie ustaleń przejdź dalej do następnych kroków, aby dowiedzieć się więcej o tym, co powoduje ich skok procesora CPU. Zidentyfikuj główną przyczynę, śledząc sekwencję procesów, wątków, modułów i funkcji.
Przykłady rozwiązywania problemów
Zapoznaj się z poniższymi przykładami użycia języka TroubleShootingScript (TSS) do zbierania danych i procesora CpuStres w celu symulowania aktywności procesora CPU.
Korzystanie z TSS
TSS może uzyskać duży ślad użycia procesora CPU, gdy procesor osiągnie określony próg:
Pobierz TSS i wyodrębnij go do folderu C:\tss na komputerze, którego dotyczy problem.
W wierszu polecenia programu PowerShell z podwyższonym poziomem uprawnień uruchom następujące polecenie cmdlet z folderu C:\tss .
.\TSS.ps1 -perfmon general -WaitEvent HighCPU:90 -StopWaitTimeInSec 100
Uwaga
Poczekaj na wystąpienie problemu z wysokim użyciem procesora CPU. Gdy użycie procesora CPU przekroczy <wartość CpuThreshold>%, zachowaj zbieranie danych przez czas trwania
StopWaitTimeInSec
settconds (wartość domyślna to 60).Oto więcej przykładów:
-
.\TSS.ps1 -PerfMon General -PerfIntervalSec 5 -WaitEvent HighCPU:90
PerfMon
reprezentuje monitor wydajności z krótkim interwałem. -
.\TSS.ps1 -PerfMonLong SMB -PerfLongIntervalMin 11 -WaitEvent HighCPU:90
PerfMonLong
reprezentuje monitor wydajności z długim interwałem.
-
W nowym wierszu polecenia programu PowerShell z podwyższonym poziomem uprawnień uruchom następujące polecenie cmdlet z folderu C:\tss .
.\TSS.ps1 -Stop
Uwaga
Jeśli ślad nie zostanie zatrzymany po pięciu minutach, zatrzymaj go.
TSS obsługuje monitory wydajności. Szczegółowe nazwy liczników wydajności można wyświetlić, uruchamiając .\TSS.ps1 -ListSupportedPerfCounter
polecenie cmdlet .
Rozpocznij przechwytywanie liczników wydajności za pomocą General
zestawu liczników, uruchamiając polecenie cmdlet:
.\TSS.ps1 -PerfMon General
Jeśli chcesz zmienić interwał dziennika wydajności, użyj ( -PerfIntervalSec
jednostka jest sekunda) lub -PerfIntervalMin
(jednostka jest minutą). Na przykład .\TSS.ps1 -PerfMon General -PerfIntervalSec 1
określa interwał jednej sekundy.
Poniżej przedstawiono więcej przykładów .\TSS.ps1 -PerfMon <CounterSetName>
polecenia cmdlet:
Rozpocznij monitor wydajności z ogólnymi licznikami (procesor CPU, pamięć, dysk itd.) i 5-sekundowym interwałem:
.\TSS.ps1 -PerfMon General -PerfIntervalSec 5
Rozpocznij monitor wydajności (
Long
) przy użyciu liczników SMB (liczników SMB i liczników ogólnych) oraz 11-minutowego interwału:.\TSS.ps1 PerfMonLong SMB -PerfLongIntervalMin 11
Można to również zrobić za pomocą monitor wydajności, aby rozpocząć śledzenie, gdy użycie procesora OSIĄGNIE pewną ilość, ale jest skomplikowane i czasochłonne.
Korzystanie z usługi CpuStres
Za pomocą procesora CpuStres można symulować wysokie użycie procesora CPU, uruchamiając kilka wątków. Po śledzeniu problemu z wysokim użyciem procesora CPU przez sześć minut monitor wydajności pokazuje luki na poniższym grafie, co jest problemem:
Procesor | Minimum | Maksimum | Średnia |
---|---|---|---|
Czas procesora (%) | 4.688% | 100% | 81.605% |
Po dodaniu liczników procesora: %ProcessorTime i przyjrzeniu się wystąpieniom zobaczysz, że CPUStres64.exe ma największe zużycie. Istnieją wystąpienia, w których czas procesora %przekroczył 100%, osiągając około 180% w danych, co oznacza znaczne wzrosty.
Czas procesora (%) | Minimum | Maksimum | Średnia |
---|---|---|---|
CPUSTRES64 | 0% | 180.309% | 19.787% |
Sprawdź długość kolejki procesora, czyli > średnią 10. Jest to problem. Przejdź do szczegółów, kto używa czasu procesora %.
Jest to ograniczenie monitor wydajności. Może wyświetlać tylko tyle danych.
Liczniki wydajności użycia procesora CPU
W przypadku problemów z wysokim użyciem procesora CPU najpierw sprawdź użycie procesora CPU w Menedżerze zadań. Jeśli wykorzystanie procesora CPU stale przekracza 85%, oznacza to, że system ma wąskie gardło procesora CPU. Oto lista liczników, które należy sprawdzić:
- Procesor: % czasu procesora
- Procesor: % czasu użytkownika
- Procesor: % czasu uprawnień
- Procesor: % czasu przerwania
- System: Długość kolejki procesora
- System: wywołania/s
- System: Przełączniki kontekstowe/s
- Proces: liczba wątków
- Proces: liczba dojść
Przyjrzyj się następującym licznikom monitorowanych pod kątem różnych aspektów wydajności:
Składnik | Monitorowany aspekt wydajności | Liczniki do monitorowania |
---|---|---|
Procesor | Użycie | Procesor: % czasu procesora (wszystkie wystąpienia) Procesor: % czasu DPC Procesor: % czasu przerwania Procesor: % czasu uprzywilejowanego Procesor: % czasu użytkownika |
Procesor | Wąskie gardła | Procesor: % czasu procesora (wszystkie wystąpienia) Procesor: % czasu DPC Procesor: % czasu przerwania Procesor: % czasu uprzywilejowanego Procesor: % czasu użytkownika Procesor: przerwania/s Procesor: kontrolery DPCs w kolejce/s System: przełączniki kontekstowe/s System: Wywołania systemowe/s System: Długość kolejki procesora (wszystkie wystąpienia) |
Nazwa licznika | Metric |
---|---|
Długość kolejki procesora (PQL) | Jeśli istnieją co najmniej dwa wystąpienia na procesor i wysokie użycie procesora CPU, sprawdź procesy pod kątem wysokiego użycia procesora CPU. Sprawdź również przełączniki kontekstowe, % czasu DPC i % czasu przerwania. |
% czasu procesora | 0–50%: w dobrej kondycji. 50–80%: monitor/ostrzeżenie. 80–100%: krytyczne. System może działać wolno. |
% czasu DPC | % czasu> procesora 85% i % czasu> DPC 15%: sprawdź, czy są one stale powyżej tych poziomów. Krótkie skoki są w porządku. Na przykład tylko na jednym procesorze z 100% czasu procesora i ponad 50% czasu DPC. |
% czasu przerwania | Długi czas przerwania procesora CPU: ponad 30% czasu przerwania. Duża ilość czasu przerwania w procesorze może wskazywać na problem ze sprzętem lub sterownikiem. Bardzo wysoki czas przerwania procesora CPU: ponad 50% czasu przerwania. Bardzo duża ilość czasu przerwania w procesorze może wskazywać na problem ze sprzętem lub sterownikiem. |
Dokumentacja
- Windows monitor wydajności
- LOGMAN (perfmon)
- Instrukcje: zbieranie danych śledzenia zdarzeń za pomocą monitor wydajności
- Tryb użytkownika a użycie procesora trybu uprzywilejowanego
Informacje o innych firmach i zastrzeżenie dotyczące rozwiązania
Informacje i rozwiązanie w tym dokumencie stanowią bieżący widok firmy Microsoft Corporation na te problemy od daty publikacji. To rozwiązanie jest dostępne za pośrednictwem firmy Microsoft lub za pośrednictwem dostawcy innej firmy. Firma Microsoft nie zaleca specjalnie żadnego dostawcy innej firmy ani rozwiązania innej firmy, które może opisać ten artykuł. Mogą również istnieć inni dostawcy innych firm lub rozwiązania innych firm, których nie opisano w tym artykule. Ponieważ firma Microsoft musi reagować na zmieniające się warunki rynkowe, te informacje nie powinny być interpretowane jako zobowiązanie firmy Microsoft. Firma Microsoft nie może zagwarantować ani poprzeć dokładności żadnych informacji lub jakiegokolwiek rozwiązania przedstawionego przez firmę Microsoft lub dowolnego wymienionego dostawcę innej firmy.
Firma Microsoft nie udziela żadnych gwarancji i nie wyklucza wszystkich oświadczeń, gwarancji i warunków, niezależnie od tego, czy są one wyraźne, dorozumiane, czy ustawowe. Warunki te obejmują, ale nie są ograniczone do reprezentacji, gwarancji lub warunków tytułu, nienależących do naruszenia, zadowalającego warunku, możliwości handlowej i przydatności do określonego celu, w odniesieniu do jakiejkolwiek usługi, rozwiązania, produktu lub innych materiałów lub informacji. W żadnym wypadku firma Microsoft nie będzie ponosić odpowiedzialności za jakiekolwiek rozwiązanie innych firm, o których wspomina ten artykuł.