Windows 8 x64 中的 IPHLPSVC 高 CPU

kyr*_*ryx 8 cpu-usage ipv6 windows-8

我在 Windows 8 Pro x64 中遇到持续的高 CPU 使用率。原因是 svchost 以恒定的 25% CPU 运行,即使在空闲时也是如此。我检查了 svchost 正在运行的服务,并打开/关闭它们,直到找到原因。

事实证明,IPHLPSVC(IP Helper)服务负责所有 CPU 使用率。一旦我停止服务,CPU 在空闲时下降到 0-1%。

我做了一些研究,似乎 IPHLPSV 是为了过渡到 IPv6。我仍在使用 IPv4,并且在任务停止时没有遇到任何问题。我应该禁用该任务吗?有没有人对可能导致问题的原因有任何想法?

Mic*_*ton 8

IPHLPSVC 负责 IPv6 过渡技术。但是,这些都不是开箱即用的,需要额外的配置(或者在 2016 年根本不起作用)。

Microsoft 建议不要使用 ISATAP(在《了解 IPv6,第三版,第 302 页》中),并表示应该使用本机 IPv6。公共 6to4 服务已正式弃用(RFC 7526;BCP 196)。Teredo 有一长串问题(只有一个可猜测的 IPv6 地址、有限的 NAT 穿越支持、各种连接问题),一般不建议使用它。

不幸的是,Windows 有一个默认启用所有这些的坏习惯。

如果您不是有意使用 IPv6 转换技术,则应明确禁用它们。

右键单击命令提示符并选择以管理员身份运行。然后粘贴以下命令:

netsh int ipv6 isatap set state disabled
netsh int ipv6 6to4 set state disabled
netsh int teredo set state disabled
Run Code Online (Sandbox Code Playgroud)

您还可以使用 PowerShell 禁用这些(再次以管理员身份):

Set-NetIsatapConfiguration -State Disabled
Set-Net6to4Configuration -State Disabled
Set-NetTeredoConfiguration -Type Disabled   
Run Code Online (Sandbox Code Playgroud)

然后重新启动计算机。


小智 2

您可以通过执行以下步骤来忽略该插件。

  • 单击Start,右键单击Computer,然后单击Properties
  • Advanced选项卡上,单击Environment Variables
  • 在下System variables,单击New
  • 在字段中键入 MIG_UPGRADE_IGNORE_PLUGINS Variable name
  • 在字段中键入IphlpsvcMigPlugin.dllVariable value
  • 单击OK三次以关闭对话框。

您可能需要重新启动。

这还没有经过我的测试,因为我目前没有 Windows 8 系统的机器可供测试。此信息是针对 Windows 7 找到的,如果您有从 Windows 7 升级到的 Windows 8 系统,该信息可能直接相关。