为什么 Windows 7 更新安装需要这么长时间?

为什么 Windows 7 更新安装需要这么长时间?

昨天晚上,我在一台旧笔记本电脑上安装了 Windows 7,以便可以尝试 Win32 API 编程。我大约在 5 小时前开始更新。它大约在 30 分钟内下载了更新,但截至目前它仍在安装,并且只完成了 58%。

为何要花这么长时间?我该怎么做才能加快这一进程?

该笔记本电脑是 HP Pavilion dv6701us,配有 2 GB RAM、120 GB SATA 硬盘和双核 Pentium D CPU,物有所值。

更新(2015 年 7 月 18 日):我现在已经在家里的每台 Windows 7 机器上观察到了这种行为,无论是 32 位还是 64 位。它似乎与 RAM、CPU 速度和核心数,甚至 SSD 与 HDD 都几乎没有关系。我见过的所有 Windows 7 系统在更新时,都需要 8 个多小时才能安装约 200 个更新。

有谁需要 Windows 更新吗?不是非常慢?

更新(2015 年 7 月 19 日):这是压缩的 xprof 文件的链接:

https://drive.google.com/file/d/0B7EgLkt64WtaWWc5YTJicThLNFk/view?usp=sharing

更新(2015 年 9 月 14 日):

我对下面的答案并不完全满意——微软真的会发布如此糟糕的东西吗?——所以我决定用 Sysinternals procmon 试试。这就是我一次又一次看到的情况,而 Windows Update 挂起,甚至没有开始下载东西:

High Resolution Date & Time:    9/14/2015 8:24:12.9744097 PM
Event Class:    Registry
Operation:  RegOpenKey
Result: NAME NOT FOUND
Path:   HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\WindowsUpdate
TID:    3376
Duration:   0.0000183
Desired Access: Query Value

该 WindowsUpdate 键不存在。可能是它本来就不存在;但我强烈怀疑并非如此,因为它被更新程序的服务主机进程一遍又一遍地访问,似乎处于一个无限循环中。不过,在这种情况下,问题是:它应该包含哪些条目/值?

Google/Bing 到目前为止还没有找到任何东西,但我会继续寻找。

更新 2(2015 年 9 月 14 日):

我尝试了这里的修复程序: https://support.microsoft.com/en-us/kb/2700567

它声称修复了一些问题,包括有关更新服务注册缺失或损坏的问题(!)。太奇怪了。这是全新安装的 Windows 7 SP1。

... 然而,Windows 更新仍然像以前一样慢,占用了 50% 的可用 CPU 能力,同时似乎陷入了无限循环。

我就是不明白。Windows 拥有 90% 的桌面用户群,默认情况下它不可能这么糟糕……我会继续调查。

答案1

从 Windows Vista 开始,更新以差异文件的形式出现。因此在安装过程中,Windows 需要根据差异创建真实文件。这会占用大量 CPU 并且需要一些时间,尤其是在 Pentium D 等非常老旧的 CPU 上。

在您提供的 xperf 文件中,由于 TrustedInstaller 需要创建一个,因此 CPU 使用率很高pending.xml。这意味着更新的文件正在使用中,必须在关机/启动期间进行更新,从而导致出现此对话框:

在此处输入图片描述

此时 CPU 正忙于写入 XML 数据

wcp.dll!Windows::ServicingAPI::CCSITransaction::GeneratePendingTransactionContent 

并将数据写入注册表

wcp.dll!Windows::Rtl::SystemImplementation::CKey_IRtlKeyTearoff::CreateNewKey

但更大的问题是您尝试安装 5 个 .Net Framework 更新:

在此处输入图片描述

现在 Windows 很忙,因为 .Net 优化器服务mscorsvw.exe运行以将更新的 .net 文件编译为机器代码,以提高性能并减少 .net 应用程序的内存使用量。

在此处输入图片描述

这也非常耗费 CPU 并且速度Intel Atom CPU N270 @ 1.60GHz太慢。

微软提供了一个脚本来加速这一过程

答案2

要了解为什么你的计算机安装 Windows 更新需要这么长时间,请打开你的开始菜单并输入Resource Monitor。您将看到一个屏幕,其中显示了计算机资源使用情况的摘要。

在窗口的右侧,您将看到四个图表,它们表示计算机四个主要子系统(CPU、磁盘、内存和网络)的活动。你正在寻找的是你的计算机的瓶颈即阻碍其他一切的子系统(通常一次只有一个)。

解释图表

观察每个图表,您会看到一个绿色阴影区域和一条蓝线,它们都代表图表 Y 轴上的值。

中央处理器

蓝线表示处理器的最大频率的使用情况。如果蓝线位于图表顶部,则表示 CPU 以额定速度的 100% 运行;如果位于图表的中间,则表示 CPU 已降低 50%。

绿色区域显示处理器的可用速度您的电脑正在使用。

如果绿色阴影填满整个图表,则表明 CPU 是瓶颈,在这种情况下,蓝线应该也处于顶部。

磁盘

蓝线表示磁盘的繁忙程度,从 0%(空闲)到 100%(在特定情况下尽可能努力地工作)。绿线表示正在读取和写入的数据总量,以图表顶部显示的数字的 0-100% 为标度。因此,如果图表显示 10 Mbps,而绿线处于上升的 75%,则您的磁盘正在以非常慢的 7.5 Mbps 的速度传输数据。

当蓝线固定在图表顶部时,表示磁盘是瓶颈。顺便说一句,这是我对你的瓶颈所在位置的猜测但这不是重点,因为我正在教你如何自己解决问题。

网络

网络图类似于磁盘图。蓝线显示网络适配器所能使用的总带宽百分比,而绿线显示正在使用的数据量,同样按照显示的比例。

如果蓝线和绿线位于图表顶部,则表示您的网络是瓶颈。

记忆

蓝线显示物理内存的使用百分比,而绿线显示每秒发生多少个硬页面错误。

你不太可能找到那条蓝线全部由于 Windows 会主动将数据从内存移动到硬盘驱动器以保持一些可用的 RAM(这称为分页)。但是,如果使用了大量 RAM硬盘非常活跃那么内存可能就是瓶颈。页面/秒的数量也可以表明你的 RAM 是否太低。如果你有一个持续的发生硬页面错误,这意味着 Windows 希望在(快速)内存中找到数据,但必须在(速度慢得多的)磁盘上的页面文件中查找所需的位。


通过在计算机运行时观察资源监视器,您可以快速确定哪个子系统出现问题,从而确定哪种升级可以最有效地提高性能。

答案3

从您的规格来看,机器听起来很慢,在这种情况下显然是正确的。

您可以做的是为机器购买更多 RAM(如果可以的话)。处理器是 Pentium D,看起来又旧又慢,因此您的机器处理时间会更长。

我会提供更多有关购买 RAM 的信息,但不幸的是,这不是超级用户会发生的事情之一。

答案4

您可以创建一个 Windows 7 安装 USB 拇指驱动器(或 DVD,但拇指驱动器速度更快),其中包含截至该日期的所有补丁。这样,在较旧的机器上安装就不必花费太多时间。这里有一页概述了该过程。http://www.sysadminlab.net/mobile/creating-a-fully-patch-install-wim-for-windows-78-without-mdt-but-using-wsus-offline-updater

如果您要进行很多这样的操作,那么值得学习如何创建自己的安装程序。如果没有,那么这次就完成漫长的更新吧。
您可能拥有 Service Pack 1 之前的媒体。较新的 Windows 7 DVD 已经打上了补丁。

相关内容