我在 Windows 8 Pro x64 中遇到了持续的高 CPU 使用率。原因是 svchost 以恒定的 25% CPU 运行,即使在空闲时也是如此。我检查了 svchost 正在运行的服务,并将它们打开/关闭,直到找到原因。
事实证明,一项服务 IPHLPSVC (IP Helper) 是造成所有 CPU 使用率的原因。一旦我停止该服务,CPU 在空闲时会下降到 0-1%。
我做了一些研究,似乎 IPHLPSV 适用于过渡到 IPv6。我仍然使用 IPv4,任务停止后没有遇到任何问题。我应该禁用该任务吗?有人知道是什么原因导致的吗?
答案1
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
您还可以使用 PowerShell 禁用这些功能(再次以管理员身份):
Set-NetIsatapConfiguration -State Disabled
Set-Net6to4Configuration -State Disabled
Set-NetTeredoConfiguration -Type Disabled
然后重新启动计算机。
答案2
您可以通过执行以下步骤来忽略该插件。
- 单击
Start
,右键单击Computer
,然后单击Properties
。 - 在
Advanced
选项卡上,单击Environment Variables
。 - 在 下
System variables
,单击New
。 - 在字段中输入 MIG_UPGRADE_IGNORE_PLUGINS
Variable name
。 - 类型插件库在该
Variable value
领域。 - 单击
OK
三次以关闭对话框。
您可能需要重新启动。
这有未经过测试我自己没有 Windows 8 系统机器可以测试。此信息是针对 Windows 7 发现的,如果您有从 Windows 7 升级到 Windows 8 的系统,则这些信息可能直接相关。