Windows „iowait” raportowanie wykorzystania procesora

9

Czy system Windows uwzględnia i raportuje „ iowait” w taki sam sposób jak Linux? Oznacza to, że procesy wchodzą w „nieprzerwany sen”, a ich czas jest odejmowany od „bez procesora”?

Jeśli tak, to które liczniki Perfmon byłyby odpowiednie do wykrywania „procesora zajętego z powodu opóźnień obsługujących operacje we / wy” w przeciwieństwie do „procesora zajętego z powodu obliczeń?”

Yolo Perdiem
źródło
To jest magia jądra. Możesz zajrzeć do „Wewnętrznych elementów systemu Windows”, aby uzyskać bardziej szczegółowy obraz.
the-wabbit

Odpowiedzi:

10

Niektóre pojęcia w jądrze systemu Windows różnią się znacznie od tych w systemie Linux, dlatego nie widzisz iowaitlicznika w Perfmon.

Po pierwsze, jednostka planowania w systemie Windows jest wątkiem, a nie procesem. Proces jest tylko pojemnikiem na ponad 1 wątek. Ponadto system Windows nie definiuje nieprzerwanego stanu uśpienia dla swoich wątków (a dokładniej wszystkie żądania We / Wy mogą zostać przerwane - na przykład przez inny wątek tego samego procesu), dlatego nie byłoby dokładnego iowaitodpowiednika na platformach Windows. System Windows zgłasza czas, w którym wątki oczekują na synchronizację we / wy jako „bezczynne”, ponieważ harmonogramy po prostu przełączają kontekstowo przez program planujący, gdy tylko wysyłają żądania synchronizacji we / wy.

Jeśli jesteś zainteresowany całkowitym czasem spędzonym na operacjach we / wy na określonym urządzeniu, powinieneś przyjrzeć się licznikom związanym z opóźnieniami oraz liczbie odpowiednich żądań przetworzonych w tym okresie. Nie pozwoli to jednak na rozbicie go na wzorce dostępu synchronicznego i asynchronicznego.

the-wabbit
źródło