Mam procesor dwurdzeniowy, a jeden z nich ma stale 100%. Przeglądanie w ProcessExplorer pokazuje mi, że są to odroczone wywołania procedur. Czytanie w sieci wydaje mi się dawać mnóstwo różnych odpowiedzi.
Czy można określić kilka kroków, aby zawęzić problem w moim przypadku?
Aktualizacja 1: FWIW, problem utrzymuje się nawet w trybie awaryjnym.
Aktualizacja 2: Odłączyłem wszystko, co mogłem, z tyłu komputera, a to kupiło mi 40% więcej wolnego procesora. Ja też pobraniu narzędzie RATTV3 , ale z jakiegoś powodu na moim komputerze to nie daje mi załamanie kierowca-by-kierowcy. Jest to dobry opis zarówno DPCLatencyChecker i RATTV3 tutaj .
Aktualizacja 3: , LatencyMon (zobacz moją odpowiedź poniżej) mówi mi, że to nvstor32.sys
- co jest sterownik SATA NVIDII - z czasów około 5300 mikrosekund.
Aktualizacja 4: Fabuła gęstnieje, zastanawiając się, czy spróbować uruchomić dysk odzyskiwania (aby sprawdzić, czy to naprawdę sterowniki, a nie problem sprzętowy), zauważyłem, że odtwarzacz DVD / CD nie działa (tj. Nawet nie otwiera drzwi po naciśnięciu przycisku). Biorąc pod uwagę, że maszyna właśnie wróciła z wymiany płyty głównej, pomyślałem, że może zapomnieli ją podłączyć. Otworzyłem pudełko, wszystko wydawało się w porządku, ale odłączyłem je i ponownie włączyłem. Po ponownym uruchomieniu wszystko było w porządku - nigdy więcej DPC (najwyższy teraz 300µs)!
Aktualizacja 5: Następnego dnia problem z powrotem, odtwarzacz CD nie działa ponownie, nawet kursor w polu tekstowym hasła miga w zwolnionym tempie ... Próbowałem odłączyć wszystko, co mogłem wymyślić, a po ponownym uruchomieniu ponownie działał (jak w aktualizacji 2 ). Następnym razem spróbuję całkowicie odłączyć odtwarzacz CD ...
Aktualizacja 6: Właśnie zauważyłem, że w dzienniku zdarzeń systemowych pojawia nvstor32.sys
się komunikat o błędzie Parity error detected in \Device\RaidPort0
, a następnie ostrzeżenie o wysłaniu ponownej inicjalizacji. Teraz muszę tylko ustalić, który z nich RaidPort0
jest ... (uwaga, nie mam konfiguracji RAID, to po prostu bogaty standardowy Acer). Aha, a moja konfiguracja Avast najwyraźniej została zabita, gdy przywróciłem system (lub jakkolwiek to się nazywa), ponieważ się nie uruchomi (błąd RPC), nie odinstaluje się (wystąpił błąd setiface).
Aktualizacja 7: Wreszcie nadszedł czas na ponowne uruchomienie z odłączonym dyskiem DVD. Nigdy więcej problemów z DPC! (wiele błędów strony, ale to na później). Następny krok: sprawdź, czy to kabel, czy odtwarzacz DVD.
Aktualizacja 8: Wypożyczyłem kabel SATA, uruchomiłem go, bez problemów. Odtwarzacz CD / DVD działa, nie ma problemów z DPC nvstor32.sys
, brak zablokowanych procesorów. Szczęśliwy koniec ... prawie: wciąż mam problemy z Avastem, widoczne problemy z DPC storport.sys
podczas uruchamiania (może normalne dla USB?) I wiele trudnych błędów strony. Ale będą one przedmiotem innych pytań.
Postscript: Niedawno zacząłem mieć ten sam problem i przy użyciu tej samej metody udało mi się wyśledzić go do pamięci USB (tej, której używałem w ReadyBoost).
źródło
Odpowiedzi:
Oto historia, w jaki sposób znalazłem przyczynę mojego dużego opóźnienia DPC.
Mój system doświadczał kliknięć i trzasków podczas odtwarzania dźwięku. Wiedziałem, że to oznacza, że coś w trybie jądra blokuje procesor. Moją pierwszą myślą było pogrzebanie w Eksploratorze procesów i sprawdzenie, czy coś jest nie na miejscu. Jedyną rzeczą, która zwróciła moją uwagę, była nadmierna ilość czasu poświęcanego na wykonywanie odroczonych wywołań procedur (DPC):
Wiedziałem, że DPC są kodami uruchamianymi w sterowniku; Wyzwanie polegało na ustaleniu, który kierowca. Zwróciłem się do programu DPC Latency Checker , który pokazał mi, jak bardzo opóźnienie było:
DPC Latency Checker sugeruje przeglądanie urządzeń w Menedżerze urządzeń i wyłączanie zbędnego sprzętu jeden po drugim (np. Karta sieciowa, karta dźwiękowa), mając nadzieję na wyodrębnienie błędnego sterownika. (Jeśli wyłączysz urządzenie, a opóźnienie DPC nagle spadnie: znalazłeś winowajcę!)
Niestety po wyłączeniu wszystkiego, co mogłem (chociaż nadal mogę korzystać z komputera - nie wyłączaj dysku twardego, karty graficznej, myszy ani koncentratora USB, do którego podłączona jest mysz!) Opóźnienie było nadal wysokie. Następnie zwróciłem się do Windows Performance Toolkit (część zestawu Windows SDK ) i doskonałego posta na blogu Petera Weilanda, „Pomiar czasu DPC” . Po zainstalowaniu pakietu Windows Performance Toolkit:
Otworzyłem wiersz polecenia z podwyższonym poziomem uprawnień i uruchomiłem:
Po minucie działania zatrzymałem śledzenie i zapisałem w pliku:
A potem przejrzałem wyniki śledzenia za pomocą polecenia:
Spowoduje to załadowanie graficznego analizatora wydajności systemu Windows . Klikając prawym przyciskiem myszy wykres zużycia procesora DPC , wybrałem tabelę podsumowań . Pokazuje podział czasu spędzonego w DPC według kierowcy:
Od razu widzę, że jeden sterownik (
tsvp.sys
) pobiera średnio 2,8 ms na wykonanie DPC, czyli o rząd wielkości wolniej niż jakikolwiek inny sterownik:Googling
tsvp.sys
dał mi odpowiedź: CommView , który niedawno zainstalowałem.Pytanie brzmi teraz, jak wyłączyć ten sterownik. Za pomocą AutoRuns widzę, że jest zainstalowany jako usługa sterownika:
Za pomocą Menedżera urządzeń mogę wyłączyć usługę udostępniającą ten sterownik. Najpierw musisz pokazać ukryte urządzenia , a następnie rozwinąć
Non-Plug and Play Drivers
węzeł:Wreszcie mogłem zatrzymać usługę sterownika i zmieniłem tryb uruchamiania z
System
(co oznacza, że sterownik jest niezbędną częścią systemu Windows, a Windows nie może się bez niego uruchomić) naDemand
(co oznacza, że mogę uruchomić sterownik, kiedy chcę):Natychmiastowe zatrzymanie usługi sterownika naprawiło moje opóźnienie DPC:
Mogę całkowicie odinstalować CommView, ale na razie rozwiązałem przypadek wysokiego opóźnienia DPC.
Aktualizacja : Począwszy od systemu Windows 8 w Menedżerze urządzeń nie widać już sterowników innych niż Plug and Play :
Microsoft odebrał tę funkcję i zastąpił ją niczym. Dobra robota.
W typowej wściekłości, niektóre nieprzydatne odpowiedzi :
Na szczęście NirSoft stworzył zamiennik. ServiWin umożliwia wyświetlanie, zatrzymywanie i uruchamianie wszystkich usług (nawet tych, które Microsoft postanowił, że administratorzy powinni widzieć):
źródło
STATUS POSTĘPU
Najlepszym narzędziem, jakie do tej pory znalazłem , jest LatencyMon , który zasadniczo robi wszystko, co robią poprzednie dwa narzędzia, bez myślenia. Strona pobierania prosi o rejestrację przez e-mail - ale nic mi się nie stało, kiedy to zrobiłem - ale możesz mimo to przewinąć do dołu strony, aby pobrać.
źródło
W moim przypadku użyłem LatencyMon (z odpowiedzi Benjola) i odkryłem, że sterownik zamrażający życie, wszechświat i wszystko było (także),
storport.sys
co jest sterownikiem Microsoft dla „ autobusów o wysokiej wydajności ”. Potwierdziło to moje podejrzenie, że problem dotyczy IO.Poszedłem też dalej i spojrzałem na moją przeglądarkę zdarzeń Windows 7 , folder Dzienniki systemu Windows -> Aplikacja , i znalazłem kilka partii błędów z Volume Shadow Copy (VSS) co 30 minut do 2 godzin. Są to takie szczegóły:
Potem zacząłem badać, co to do cholery jest VSS i do czego służy. Podszedłem kilka - stron - około - rozwiązywania problemów VSS . Przeglądając te wszystkie, miałem jednego podejrzanego: moje oprogramowanie do tworzenia kopii zapasowych CrashPlan .
Podążając tym tropem, szybko znalazłem stronę powiązaną z błędami VSS . Postępując zgodnie z instrukcjami tam, aby wyłączyć tworzenie kopii zapasowych otwartych plików, które używa VSS, zawieszenie, wysokie użycie procesora jądra itp. Zostały całkowicie wymarłe. I nie zrozum mnie źle: CrashPlan jest świetny! Po prostu ta funkcja nie działała na moim komputerze.
BTW, ta strona tutaj była JEDNAKĄ, która dała mi wstępny trop, który pomógł mi znaleźć podstawową przyczynę moich problemów. Dziękuję bardzo @Benjol i wszystkim innym, którzy odpowiedzieli wcześniej! Mam nadzieję, że moja odpowiedź pomoże również innym ...
źródło
Prawdopodobnie istnieje sterownik urządzenia, który utrzymuje Twój system w stanie zajętym. Jednym ze sposobów na analizę tego jest uruchomienie sprawdzania opóźnień DPC . Następnie wyłączaj po jednym sterowniku i sprawdź, czy ładunek DPC spadnie. (Działa także eksplorator procesów).
Możesz wyłączyć sterowniki urządzeń w Zarządzaniu komputerem -> Menedżer urządzeń.
źródło
Wydaje mi się, że powinienem tutaj dodać swoją odpowiedź, ponieważ problem ten jest trudny do rozwiązania i nie zawsze wynika to ze złych sterowników lub konfliktów IRQ.
Miałem duże opóźnienia RPC, które powodowały trzaski / trzaski w mojej pro-sumerowej karcie dźwiękowej USB. Narzędzia opisane w zaakceptowanej odpowiedzi nie były pomocne w identyfikacji konkretnego sterownika, który był przyczyną problemu. Opóźnienie występowało w wielu procesach: HAL, USBPORT.SYS i jądro systemu Windows. Zagłębianie się w te procesy nie ujawniło oczywistego winowajcy.
W moim przypadku okazało się, że problem dotyczy niższego poziomu i jest specyficzny dla płyt głównych GigaByte z niektórymi chipsetami i wersjami BIOS-u. Rozwiązaniem było wyłączenie Intel SpeedStep i wszystkich innych funkcji specyficznych dla płyty głównej, które dostosowywały szybkość i napięcie procesora w locie. Po wyłączeniu tych opcji moje opóźnienie RPC zostało natychmiast naprawione.
źródło
Zacząłem widzieć ten błąd po usunięciu błędu IRQ w moim kontrolerze Ethernet nVidia 10/100/1000, który pojawił się podczas aktualizacji mojej karty graficznej do GeForce GTX 550 Ti.
Wydaje się, że po aktualizacji do nowych sterowników GeForce 295.73, a następnie rozwiązaniu konfliktu przerwań, usunąłem, uszkodziłem lub odinstalowałem istniejące sterowniki kontrolera nForce SATA / RAID. Nie używam RAID, błąd nadal występuje i od czasu do czasu zablokowałem Vista Ultimate 64-bit.
Po wypróbowaniu wszystkich sugestii dotyczących rozwiązywania problemów, które znalazłem w Internecie, pojawiło się proste rozwiązanie ... Uaktualniłem do kontrolera nForce SATA / RAID 15.58, ale zostawiłem inne sterowniki nForce same.
Naprawiłem to, a teraz rozwiązałem wszystkie moje konflikty ze sterownikami. Mam nadzieję, że to również pomoże.
źródło