Windows 8 x64中的IPHLPSVC高CPU


8

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

事实证明,一项服务IPHLPSVC(IP帮助程序)负责所有CPU使用率。一旦我停止了服务,空闲时CPU就会降到0-1%。

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


在您知道需要IPv6之前,我将禁用该服务。无论如何,禁用不必要的服务通常是一种合理的做法,因为这会限制您面临的安全风险。
vgoff 2012年

@vgoff感谢您的回复。我也是这么想的 您是否知道是什么原因导致了此问题?我认为这可能是某种驾驶员问题
kyryx 2012年

不知道,您将不得不查阅日志以查看IP帮助程序正在尝试执行的操作。
vgoff 2012年

我现在有更多提示。你有%windir%\system32\drivers\Tunnel.sys文件吗?这是该服务的核心。这是否是Windows 8的全新安装或升级?
vgoff 2012年

我在win7x64中有这个问题。大概一个星期了。刚刚陷入@#$ @#。关闭了服务,似乎有固定的东西。我的dll在那,那该死!
boomhauer

Answers:


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

您也可以使用PowerShell禁用它们(再次,以管理员身份):

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

然后重新启动计算机。


2

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

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

您可能需要重新启动。

尚未测试过此文件,因为我目前没有Windows 8系统计算机可以测试。发现此信息适用于Windows 7,如果您具有从Windows 7升级的Windows 8系统,则该信息可能直接相关。


我确实有一个%windir%\system32\drivers\Tunnel.sys文件,并且这是Windows 8的完全干净的安装。不是添加MIG_UPGRADE_IGNORE_PLUGINS变量只是与禁用服务相同吗?
kyryx 2012年

不确定 我没有要测试的系统。无论如何,它可能都不适合您,因为您没有参与“升级”。
vgoff
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.