Jakich zapytań WQL użyłbyś do monitorowania typowych wąskich gardeł systemu Windows? Którego byś użył do uzyskania danych podobnych do „top” lub „netstat”? W jakim odstępie czasu sondowałbyś?
Oto kilka, które uważam za pomocne.
SELECT PercentDiskTime, AvgDiskQueueLength, DiskReadBytesPerSec, DiskWriteBytesPerSec FROM Win32_PerfFormattedData_PerfDisk_PhysicalDisk
SELECT Caption, CommittedBytes, AvailableBytes, PercentCommittedBytesInUse, PagesPerSec, PageFaultsPerSec FROM Win32_PerfFormattedData_PerfOS_Memory
SELECT PercentProcessorTime FROM Win32_PerfFormattedData_PerfOS_Processor
SELECT Caption, WorkingSet, PageFaultsPerSec,IOReadBytesPerSec, IOWriteBytesPerSec, ThreadCount, HandleCount FROM Win32_PerfFormattedData_PerfProc_Process
SELECT Caption, BytesReceivedPerSec, BytesSentPerSec FROM Win32_PerfFormattedData_Tcpip_NetworkInterface
monitoring
wmi
Yancy
źródło
źródło
Odpowiedzi:
To naprawdę świetne pytanie i szkoda, że nie zyskało więcej miłości!
Moją podstawową teorią analizy wąskiego gardła jest traktowanie systemu jako pudełka zawierającego 4 rodzaje skończonych zasobów: procesor, pamięć, dysk i sieć . Chcę uzyskać podstawowe liczby dla każdego z nich, aby określić kondycję pudełka. Chcę liczb łatwych do interpretacji: wysoka jest zła, niska jest dobra. 0 jest najlepsze, choć nigdy nie jest w pełni osiągalne (w końcu kupiliśmy komputer do pracy , co?). Gdy zobaczę, który z czterech zasobów jest głównym wąskim gardłem, mogę przystąpić do ustalenia, który program lub proces zjada wszystkie zasoby, i podjąć świadomą decyzję, czy muszę zwiększyć ten zasób - czy dostroić program / proces do użycia mniej zasobów.
Sformatuję główne liczniki wydajności, których używam, z tego artykułu , jako zapytania WMIC, ponieważ nie jest wymagane żadne skrypty (chociaż na pewno jest to możliwe!). Możesz wprowadzić każde z tych zapytań bezpośrednio do konsoli cmd:
Powyżej znajduje się długość kolejki procesora . To pokazuje, ile wątków czeka w kolejce na obsługę procesora. Wysokie liczby złe, niskie dobre dobre. Ogólnie rzecz biorąc, uważam wartość <10 za zdrowy system.
Powyżej znajduje się pamięć, liczba stron na sekundę , szybkość odczytu stron z dysku w celu rozwiązania trudnych błędów strony. Twarde błędy strony występują, gdy proces odnosi się do strony w pamięci wirtualnej, która nie znajduje się w pamięci fizycznej i musi zostać pobrana z dysku. Ten licznik działa jednak najlepiej w widoku wykresu Perfmon. Na zdrowym (nie wąskim gardle) komputerze od czasu do czasu zobaczysz skoki danych, gdy dane są odczytywane z dysku do pamięci RAM, im więcej skoku widzisz, a im wyższy, tym więcej ograniczeń pamięci w systemie. Jeśli system często utrzymuje niezerową wartość przez okresy dłuższe niż, powiedzmy, pięć sekund, prawdopodobnie masz wąskie gardło systemu.
Powyżej znajduje się PhysicalDisk, średnia długość kolejki dysku . Uważam to za kluczowy wskaźnik kondycji systemu, ponieważ wąskie gardła pamięci również zapadną na dysku z powodu nadmiernej zamiany plików stronicowania - i często również zwiększą wykorzystanie procesora. Wyświetli element dla każdego zamontowanego dysku, a także łącznie wszystkich dysków. Dobrze działający pojedynczy dysk będzie miał tę wartość 2 lub mniej. W przypadku tablic podziel liczbę wrzecion przez długość kolejki (np .: 4 wrzeciona w tablicy podzielone przez długość kolejki 8 = 2, co oznacza, że tablica działa dobrze).
I wreszcie, powyżej mamy wydajność NIC. W szczególności interfejs sieciowy, długość kolejki wyjściowej i otrzymane błędy . Te dwa liczniki informują nas, ile pakietów czeka na wysłanie i ile pakietów przychodzących spowodowało błędy, które prawdopodobnie spowodowały retransmisje. Chcemy, aby obie liczby pozostały na zero. W tym zapytaniu otrzymuję również bieżącą przepustowość karty sieciowej, która jest użyteczną informacją.
Po ustaleniu, który zasób jest nadużywany, zwykle polegam na Eksploratorze procesów lub obiekcie procesu Perfmon, aby dowiedzieć się, który proces jest świnią zasobów.
źródło