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:
wmic path Win32_PerfFormattedData_PerfOS_System get ProcessorQueueLength
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.
wmic path Win32_PerfFormattedData_PerfOS_Memory get PagesInputPerSec
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.
wmic path Win32_PerfFormattedData_PerfDisk_PhysicalDisk get AvgDiskQueueLength, name
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).
wmic path Win32_PerfFormattedData_Tcpip_NetworkInterface get OutputQueueLength, PacketsReceivedErrors, Name, currentbandwidth
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.