IPHLPSVC High CPU w Windows 8 x64

8

W systemie Windows 8 Pro x64 miałem stałe wysokie zużycie procesora. Przyczyną był svchost działający ze stałym 25% procesorem, nawet na biegu jałowym. Sprawdziłem usługi uruchomione przez svchost i włączałem / wyłączałem je, dopóki nie znalazłem przyczyny.

Okazuje się, że jedna usługa, IPHLPSVC (IP Helper), była odpowiedzialna za całe użycie procesora. Po zatrzymaniu usługi procesor spadł do 0-1% na biegu jałowym.

Zrobiłem trochę badań i wygląda na to, że IPHLPSV służy do przejścia na IPv6. Nadal korzystam z IPv4 i nie mam żadnych problemów z zatrzymanym zadaniem. Czy powinienem po prostu wyłączyć zadanie? Czy ktoś ma jakieś pojęcie o tym, co może być przyczyną problemu?

Kyryx
źródło
Wyłączyłem tę usługę, dopóki nie dowiesz się, że IPv6 jest potrzebny. Zazwyczaj rozsądną praktyką jest wyłączanie niepotrzebnych usług, ponieważ ogranicza to narażenie na ryzyko związane z bezpieczeństwem.
vgoff,
@vgoff Dzięki za odpowiedź. Tak też myślałem. Czy masz jednak pojęcie, co może być przyczyną problemu? Myślałem, że może to być jakiś problem ze sterownikiem
Kyryx,
Nie mam pojęcia, musiałbyś przejrzeć dzienniki, aby zobaczyć, co próbuje zrobić pomocnik IP.
vgoff,
Mam teraz więcej wskazówek. Czy masz %windir%\system32\drivers\Tunnel.sysplik? Ma to kluczowe znaczenie dla tej usługi. Czy to była czysta instalacja systemu Windows 8 czy aktualizacja?
vgoff,
Mam ten problem w Win7x64. może teraz tydzień. właśnie utknął na @ # $ @ #. wyłączyłem usługę i wydaje się, że wszystko naprawiłem. Moja dll jest tam, więc do cholery!
boomhauer

Odpowiedzi:

8

IPHLPSVC jest odpowiedzialny za technologie przejścia IPv6. Nie działają one jednak od razu i wymagają dodatkowej konfiguracji (lub po prostu nie działają w 2016 r.).

Microsoft odradza używanie ISATAP (w Zrozumieniu IPv6, wydanie trzecie , s. 302) i mówi, że zamiast tego należy użyć natywnego IPv6. Publiczna usługa 6to4 jest oficjalnie przestarzała (RFC 7526; BCP 196). Teredo ma długą listę problemów (tylko jeden adres IPv6, który można zgadnąć, ograniczone wsparcie przejścia NAT, różne problemy z łącznością), które ogólnie nie zalecają jego używania.

Niestety, system Windows miał zły zwyczaj domyślnego włączania wszystkich z nich.

Jeśli nie używasz świadomie technologii przejścia IPv6, powinieneś je wyraźnie wyłączyć.

Kliknij prawym przyciskiem myszy Wiersz polecenia i wybierz Uruchom jako administrator. Następnie wklej następujące polecenia:

netsh int ipv6 isatap set state disabled
netsh int ipv6 6to4 set state disabled
netsh int teredo set state disabled

Można je również wyłączyć za pomocą programu PowerShell (ponownie jako Administrator):

Set-NetIsatapConfiguration -State Disabled
Set-Net6to4Configuration -State Disabled
Set-NetTeredoConfiguration -Type Disabled   

Następnie uruchom ponownie komputer.

Michael Hampton
źródło
2

Możesz zignorować tę wtyczkę, wykonując następujące kroki.

  • Kliknij Start, kliknij prawym przyciskiem myszy Computer, a następnie kliknij Properties.
  • Na Advancedkarcie kliknij Environment Variables.
  • W obszarze System variableskliknij New.
  • Wpisz MIG_UPGRADE_IGNORE_PLUGINS w Variable namepolu.
  • W polu wpisz IphlpsvcMigPlugin.dllVariable value .
  • Kliknij OKtrzy razy, aby zamknąć okna dialogowe.

Może być konieczne ponowne uruchomienie.

To nie były testowane przeze mnie, a ja nie mam maszynę do systemu Windows 8 do testów w tej chwili. Informacje te znaleziono w systemie Windows 7, co może być bezpośrednio istotne, jeśli masz uaktualniony system Windows 8 z systemu Windows 7.

vgoff
źródło
Mam %windir%\system32\drivers\Tunnel.sysplik i jest to całkowicie czysta instalacja systemu Windows 8. Czy dodanie zmiennej MIG_UPGRADE_IGNORE_PLUGINS nie robi tego samego, co wyłączenie usługi?
kyryx,
Nie jestem pewien Nie mam systemu do przetestowania. Prawdopodobnie nie dotyczy to Ciebie, ponieważ nie uczestniczysz w „uaktualnieniu”.
vgoff,