Windows Update无法正常工作,并且消耗了100%的CPU(Win7 SP1)[重复]


79

这个问题已经在这里有了答案:

我已经观察到Windows Update(Win7 SP1)的奇怪行为。进程svchost占用了我的虚拟机(VirtualBox)的整个核心,没有执行任何操作(即,没有网络流量,并且文件夹C:\Windows\SoftwareDistribution保持相同大小,并且文件数量相同)。此外,该过程有时会消耗大量内存(> 1 GB)。我还注意到,有时文件夹SoftwareDistribution会在一段时间内增大大小,此后什么也没有发生,并且svchost会继续消耗整个内核。

我知道问题出在Windows Update,因为我已经跟踪(使用资源监视器)与上述行为相关的服务。

下图显示了我所面对的:

在此处输入图片说明

下图显示了有关svchost的详细信息:

在此处输入图片说明

如果我尝试执行更新,则什么也不会发生。Windows Update无法进行。见下图:

在此处输入图片说明

我离开这台机器试图进行4小时的更新。在此期间,CPU的消耗仍然很高(如上所述),并且未安装任何更新。

我的问题如下:

Windows Update无法正常工作却仍然消耗处理器的整个核心而无所作为的原因是什么?

相关问题:

svchost.exe的高内存使用率-wuauserv


使用WSUS Offline,也可以(大部分)解决此问题。
Daniel B

2
我无法添加答案,因为网站认为我的声誉低于10,这是在Windows 7 VM上对我有用的。这可能是特定于VM的。1)将核心数从1增加到更高。2)在下面的顶部答案中运行3102810更新。3)运行Windows Update。中间可能需要重新启动PC。基本上Windows Update无法在1个核心上正常运行。
尤金(Eugene K)

我的工作网络中的一堆计算机一直都被Windows Updates占用一个核心,但是用户甚至没有注意到这一点。Microsoft应该将所有这些计算机连接到分布式计算系统中,并获得数百petaFLOPS的免费计算能力。
Andrei

Answers:


83

固定

微软发布了Windows Update客户端更新,该更新2016年7月更新汇总的一部分,以修复Windows Update扫描过程中长期存在的问题。

此更新包含对Windows 7 Service Pack 1(SP1)中的Windows Update Client的一些改进。这包括以下内容:

  • 一种优化,解决了某些计算机上报告的更新扫描时间过长的问题。
  1. 下载:

  2. 停止Windows Update服务。这样可以加快MSU更新的设置。这可以从命令行在服务管理器窗口中完成

  3. 试试下载的更新,看看它是否可以加快更新的安装速度。

为了能够安装此更新,您首先需要安装Windows 7和Windows Server 2008 R2更新的2015年4月服务堆栈更新(同样,在尝试安装MSU之前,请停止WU服务)。

下载(2015年4月服务堆栈更新):

32位

64位

解决方法1

如果仍然不能帮助您搜索新的更新,请使用WSUSOffline获取所有更新。


7
不,那是行不通的。将更新安装在Win7 64位上,wuauserv在100%CPU上仍然无用地旋转,根据事件日志和WindowUpdate.log,在延长的时间内完全没有做任何事情。*叹**
Tomalak

这为我解决了问题。注意:如果您只有一个核心CPU,那么什么也无法挽救您,没有任何修复方法会有所帮助。对于这样的旧硬件,仅禁用Windows Update服务,就不能一直使用繁忙的系统,在这种情况下不可避免地要过时。快速的计算机也有问题,但是由于计算机可以处理它,因此它并未引起注意。在双核赛扬(LGA 775)中,此方法可行。
Hatoru Hansou 2015年

1
这个答案对我有用!我的VM有两个可用的内核,但是即使将其增加到6个也完全没有帮助。但是,安装此更新很麻烦,因为当Windows Update已经在后台执行某些操作时,它无法正常工作。重新启动Windows Update服务,然后立即安装此更新效果很好!
jlh

1
@jlh,您可以在安装MSU更新之前通过services.msc简单地停止WU服务。这大大加快了安装速度。
magicandre1981 '16

1
链接的KB提到了它可以解决的特定问题(升级到Win10并使用SCCM进行更新),但没有提到这里所要求的问题。
马提亚斯·韦勒

8

在解决这一问题的一天之后,我创建了另一个虚拟机来检查问题是否可能再次发生。

不幸的是,问题再次发生了!之后,我和一个朋友谈论了这个问题,他建议我禁用Windows网络接口的IPv6。我做到了,观察到两种行为:

  1. 在新的虚拟机上,当我禁用IPv6时,CPU的消耗几乎立即下降,并且Windows Update已按预期工作。

  2. 在另一个虚拟机上,禁用IPv6后,CPU的使用量并未减少。观察到我重新启动Windows后,CPU消耗仍然很高。但是,大约30分钟后,CPU的消耗下降了,一切正常。

禁用IPv6后,两个Windows均已成功更新。

请务必注意,我可以重现此行为。在禁用IPv6之前,我已经拥有虚拟机的副本。


只是作为跟进-此修复程序似乎仍然有效吗?我的一位同事也遇到了同样的问题(2008R2更新期间100%CPU),并尝试禁用IPv6。进行更改后,他重新启动,然后两个小时后,他的CPU再次出现峰值。
Rion Williams 2015年

1
您好@RionWilliams,就我而言,对于两个虚拟机(Windows 7 Professional),此解决方案均按所述方式工作。不过,也有其他的解决方案,看到这里请:superuser.com/questions/821032/...
坎托尼

嗨,坎通尼。我们既尝试了IPv6修复,也尝试了您提供的帖子中提到的一些修复,但均无济于事。但是,我们注意到,这似乎只是运行单个处理器的VM的问题(就好像您使用两个处理器一样,CPU使用率最高达到50%),并且它仅针对安装了某种SQL Server风格的计算机。我仍在调查中,但到目前为止,这些都是我将其范围缩小的事情。
里恩·威廉姆斯

禁用IPv6没有帮助。
Paul

3
我们在ESXi下运行WS2012R2服务器,而Windows Update无限期地消耗了100%的核心。在适配器的属性中禁用IPv6对我们有用。可能影响他人的问题之一是所涉及的虚拟NIC的类型:ESXi默认情况下要使用Intel PRO / 1000,这会引起很多问题,但是VMware文档建议您将WS2012使用VMXNET 3适配器或更高版本。这要求您从packages.vmware.com/tools/releases/latest/windows/index.html
AlwaysLearning '16

5

Windows Update疑难解答程序可能会帮助您解决问题 -它是一个独立的应用程序,可以诊断Windows Update和后台智能传输服务(BITS)的问题。


优秀的工具!不过必须运行TWICE -第一次,它修复了很多问题,但有:“服务注册丢失或损坏”。但是,在W-7中再次运行它,该问题也已解决!
DaaBoss

对于我来说不幸的是,故障排除工具也会永远旋转。它停留在“解决问题”上,根据任务管理器,svchost再次使我的内核之一饱和。
AshleyZ

1

对我来说固定的是KB2889748

在基于Windows的计算机上安装Windows Management Framework 3.0后,Svchost.exe进程的内存使用率很高

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.