ETW (Event Tracing for Windows) w diagnostyce systemu – jak Microsoft monitoruje działanie Windows od środka
ETW (Event Tracing for Windows) w diagnostyce systemu – jak Microsoft monitoruje działanie Windows od środka
W świecie administracji Windows istnieje wiele narzędzi diagnostycznych, które użytkownik może uruchomić jednym kliknięciem. Menedżer zadań pokaże obciążenie procesora, Monitor zasobów pozwoli sprawdzić pamięć i dysk, a Podgląd zdarzeń zapisze komunikaty systemowe.
Jednak gdy problem staje się bardziej złożony – losowe spowolnienia, chwilowe zawieszanie systemu, problemy ze sterownikami, opóźnienia aplikacji lub niewytłumaczalne skoki użycia CPU – standardowe narzędzia często pokazują tylko skutek, a nie przyczynę.
W takich sytuacjach administratorzy i inżynierowie Microsoft korzystają z mechanizmu ETW (Event Tracing for Windows).
To jedna z najważniejszych, ale jednocześnie najmniej znanych technologii diagnostycznych w Windows.
Czym jest ETW?
ETW to wbudowany w Windows mechanizm śledzenia zdarzeń działający na poziomie systemowym.
Jego zadaniem jest zbieranie szczegółowych informacji o tym, co dzieje się wewnątrz systemu operacyjnego:
- jakie procesy wykonują operacje,
- ile czasu zajmują poszczególne działania,
- kiedy występują błędy,
- jak sterowniki komunikują się ze sprzętem,
- jakie operacje wykonuje system plików,
- jak aplikacje wykorzystują procesor i pamięć.
W przeciwieństwie do klasycznego logowania, ETW został zaprojektowany jako mechanizm wysokiej wydajności.
System może rejestrować ogromne ilości zdarzeń bez zauważalnego wpływu na codzienną pracę komputera.
Dlaczego powstało ETW?
Starsze mechanizmy diagnostyczne Windows miały poważne ograniczenia.
Przykładowo:
Event Log
Podgląd zdarzeń Windows jest bardzo przydatny, ale zapisuje głównie informacje o:
- błędach,
- ostrzeżeniach,
- ważnych zdarzeniach administracyjnych.
Nie odpowiada jednak na pytania:
- dlaczego aplikacja zwolniła?
- który sterownik spowodował opóźnienie?
- co dokładnie działo się przez ostatnie 5 sekund?
Debugowanie na żywo
Debugowanie procesu za pomocą specjalistycznych narzędzi daje ogromne możliwości, ale jest trudne i często wymaga zatrzymania analizowanego programu.
Microsoft potrzebował rozwiązania, które:
- działa w tle,
- ma niski narzut wydajnościowy,
- może analizować działający system produkcyjny.
Tak powstało ETW.
Architektura ETW – jak działa ten mechanizm?
ETW opiera się na kilku głównych elementach:
Provider
Provider to komponent generujący zdarzenia.
Może nim być:
- kernel Windows,
- sterownik,
- usługa systemowa,
- aplikacja,
- komponent Microsoft.
Przykład:
Sterownik dysku może generować informacje o czasie operacji odczytu i zapisu.
Aplikacja może raportować wykonywane operacje.
Kernel może informować o tworzeniu procesów.
Controller
Controller zarządza sesją śledzenia.
Decyduje:
- jakie dane zbierać,
- od którego providera,
- jak długo działa sesja,
- gdzie zapisać wynik.
Popularnym narzędziem pełniącym tę rolę jest:
wpr.exe
czyli Windows Performance Recorder.
Session
Sesja ETW to aktywne zbieranie zdarzeń.
System może mieć wiele różnych sesji jednocześnie.
Przykładowo jedna może analizować:
- wydajność CPU,
inna:
- problemy z dyskiem,
a jeszcze inna:
- działanie konkretnej aplikacji.
Consumer
Consumer odbiera i analizuje dane.
Przykłady:
- Windows Performance Analyzer,
- PerfView,
- własne narzędzia diagnostyczne.
ETW a Kernel – najważniejsza część diagnostyki
Największą wartością ETW jest możliwość śledzenia działania samego jądra Windows.
Kernel ETW może raportować między innymi:
- tworzenie i zamykanie procesów,
- tworzenie wątków,
- przełączenia kontekstu CPU,
- operacje pamięci,
- operacje dyskowe,
- zdarzenia sieciowe,
- ładowanie sterowników.
Dzięki temu można odpowiedzieć na pytania, których zwykłe narzędzia nie potrafią wyjaśnić.
Przykład:
Użytkownik zgłasza:
„Komputer co kilka minut zamiera na sekundę.”
Menedżer zadań pokazuje tylko chwilowy skok użycia dysku.
ETW może pokazać:
- który proces wykonał operację,
- jaki plik był używany,
- który sterownik rozpoczął operację,
- ile trwało oczekiwanie.
ETW i analiza wysokiego użycia CPU
Sam fakt, że proces wykorzystuje 100% procesora, niewiele mówi.
Problem może wynikać z:
- błędnej aplikacji,
- pętli w kodzie,
- sterownika,
- przerwań sprzętowych,
- problemów z synchronizacją wątków.
ETW pozwala zejść znacznie głębiej.
Można analizować:
- stosy wywołań CPU,
- czas wykonywania funkcji,
- częstotliwość przełączeń wątków.
Dla programistów i administratorów jest to często różnica między zgadywaniem a faktyczną diagnozą.

ETW w diagnostyce problemów z dyskiem
Problemy z wydajnością dysku są jednymi z najtrudniejszych do znalezienia.
Użytkownik widzi:
- komputer działa wolno,
- dysk pokazuje 100% aktywności.
Ale przyczyna może być różna:
- aplikacja wykonuje tysiące małych operacji,
- sterownik kontrolera ma problem,
- system indeksuje pliki,
- działa antywirus,
- występuje opóźnienie sprzętowe.
ETW pozwala przeanalizować:
- czas odpowiedzi dysku,
- kolejki operacji,
- proces wykonujący zapis,
- rozmiary transferów.
Windows Performance Recorder i Windows Performance Analyzer
Najczęściej ETW wykorzystuje się przez zestaw narzędzi:
Windows Performance Recorder (WPR)
Służy do nagrywania śladu systemowego.
Przykład:
Administrator rozpoczyna nagrywanie, użytkownik wykonuje problematyczną operację, następnie zapisuje się ślad.
Powstaje plik:
.etl
czyli Event Trace Log.
Windows Performance Analyzer (WPA)
To narzędzie do analizy zapisanych danych.
Pozwala oglądać między innymi:
- wykresy CPU,
- aktywność dysku,
- wykorzystanie pamięci,
- kolejki procesów,
- opóźnienia.
To właśnie z takich danych korzystają często zespoły diagnostyczne Microsoft.
ETW a pliki ETL
Pliki ETL są kontenerem przechowującym dane z sesji ETW.
Nie są zwykłymi logami tekstowymi.
Zawierają:
- znaczniki czasu,
- identyfikatory procesów,
- informacje o zdarzeniach,
- dane kontekstowe.
Dzięki temu można odtworzyć kolejność zdarzeń praktycznie z dokładnością do mikrosekund.
ETW w praktyce – przykład diagnozy
Załóżmy problem:
„Po uruchomieniu Windows przez kilka minut komputer jest bardzo wolny.”
Standardowa diagnostyka:
- CPU 20%,
- RAM 40%,
- dysk skacze do 100%.
Nie wiadomo dlaczego.
Analiza ETW może wykazać:
- usługę wykonującą skanowanie,
- tysiące operacji odczytu małych plików,
- konkretny proces powodujący obciążenie,
- czas trwania każdej operacji.
Zamiast wyłączać losowe usługi, administrator otrzymuje konkretną przyczynę.
ETW a bezpieczeństwo Windows
ETW jest wykorzystywane również w bezpieczeństwie.
Systemy EDR (Endpoint Detection and Response) korzystają z podobnych źródeł danych do wykrywania:
- podejrzanych procesów,
- nietypowych zachowań,
- wykonywania kodu,
- komunikacji sieciowej.
Analiza zdarzeń systemowych pozwala wykrywać zachowania, których klasyczny antywirus może nie zauważyć.
Czy zwykły użytkownik powinien korzystać z ETW?
Na co dzień – nie.
ETW nie jest narzędziem do:
- czyszczenia systemu,
- przyspieszania Windows,
- optymalizacji jednym kliknięciem.
To narzędzie diagnostyczne.
Największą wartość daje wtedy, gdy istnieje konkretny problem, którego nie można rozwiązać standardowymi metodami.
Podsumowanie
ETW (Event Tracing for Windows) jest jednym z najważniejszych mechanizmów diagnostycznych w architekturze Windows NT. Działa znacznie głębiej niż klasyczny Podgląd zdarzeń i pozwala analizować rzeczywiste zachowanie systemu na poziomie procesów, wątków, sterowników oraz jądra.
Największa siła ETW polega na tym, że nie pokazuje tylko informacji:
„co się zepsuło”
ale pozwala znaleźć odpowiedź na znacznie ważniejsze pytanie:
„dlaczego dokładnie do tego doszło”.
Dla administratora Windows, inżyniera bezpieczeństwa lub osoby zajmującej się wydajnością systemów, znajomość ETW jest jednym z elementów odróżniających podstawową obsługę Windows od prawdziwej diagnostyki systemowej.






