為什麼檢查 Windows 更新這麼慢?

為什麼檢查 Windows 更新這麼慢?

我的 Windows 7 電腦已關閉自動更新。我大約每月一次批量更新。但每次「檢查更新」需15到30分鐘。我不明白為什麼檢查更新會這麼慢?我想知道後台發生了什麼事。是計算哈希值嗎?我的啟用自動更新的電腦每次啟動時是否都會遭受相同的命運(只是我不知道)?

答案1

查詢更新部分如此緩慢,因為:

  • Windows 7 使用基於組件的服務,這意味著 Windows 更新必須非常努力地確定文件和組件依賴性/相互依賴性,維護舊文件/組件的並排版本,同時仍然可以卸載單個更新/組件,但不會破壞任何其他更新/組件更新/組件,同時考慮到取代和天知道還有什麼。完成這一切的程式碼一定非常複雜。

  • Windows 7 64 位元必須維護每個更新的 32 位元和 64 位元版本。

  • Windows 必須維護兩者東德和東德每個更新的版本,這意味著在 Windows 7 64 位元上,每個更新都會獲得 32 位元 GDR、32 位元 LDR、64 位元 GDR、64 位元 LDR。

  • Windows Update 背後的程式碼效率極低,可能是由於其概念複雜性。我過去幾年的觀察是,隨著發布的更新總數的增加,更新檢查時間幾乎呈指數增長。對我來說,這表明正在採用某種遞歸演算法,也許是為了確定取代或解決依賴性。

對我們來說不幸的是,微軟不喜歡談論 Windows 內部結構,所以我們最終不得不自己弄清楚或推測。

答案2

現有答案中處理了問題的幾個面向。我將嘗試透過一般性地列出原因來將它們聯繫在一起,而不重複已經說過的內容:

  1. Microsoft Windows Update 機制極為複雜,不幸的是這也意味著複雜
  2. WU需要支援無數的硬體和軟體組合
  3. WU 需要以正確的順序套用更新
  4. Windows 7 是一個較舊的系統,SP2 已經過期並且可能永遠不會到來,這使得更新非常多
  5. 過去幾年,微軟面臨著修復眾多安全問題的巨大壓力,這導致了非常多的忙碌修復,然後是修復修復等等,直到第n代
  6. 微軟對更新機制的最佳化不夠,一般都是指數演算法,導致是暴力演算法,速度相當慢。
  7. Microsoft 的 WU 伺服器有時會負載過重。

讓我們更詳細地看看這些要點。

Windows 更新複雜性

更新發布後,隨著時間的推移,它可能會進入三個額外的不同階段:修訂、取代和到期。

更新修訂:對先前發布的更新進行更改時,稱為更新修訂版,其中下載的某些部分會發生更改。這是部分而非完整的更新替換。

被取代的更新:這是對先前版本的完全替代。有時,Microsoft 會將多個版本打包到一個套件中,並且該套件會替換其封裝的更新。

過期更新:這些是從有效更新清單中刪除的更新。此類更新不再適用,並且不會偵測到安裝。大多數情況下,更新在被取代更新替換後就會過期。

更新還具有依賴性機制,這意味著某些更新可能需要先套用其他更新。

過期的更新會對 WU 效能產生問題,因為不幸的是它們沒有從電腦中刪除,因此它們仍然參與計算,而且數量很多。使用磁碟清理可以實現一些改進刪除過時的 Windows 更新 (首先備份系統磁碟機的磁碟映像,因為 WU 也非常脆弱)。

吳計算

由於可能的組合數量龐大,Microsoft 將所有更新以巨型樹的形式保存在 WU 伺服器上。決定需要應用哪些更新是透過樹修剪演算法完成的,該演算法考慮了客戶端安裝的硬體和軟體,以及已安裝的所有更新,這本身就是需要的大量事實修剪時均能成功應用。

演算法不能保證成功,這意味著 WU 完全有能力破壞作業系統,甚至使其無法啟動。這是完全可以理解的,例如採用更新 A1,具有修訂版 A2,其中依賴 A 的更新 B 在 A1 和 A2 之間發布。現在想想安裝順序應該是A1-B-A2還是A1-A2-B,錯誤的決定可能是致命的。

WU 伺服器負載過重

維基百科有這樣的說法Windows 更新統計:

截至 2008 年,Windows Update 擁有約 5 億個用戶端,每天處理約 3.5 億次唯一掃描,並與用戶端電腦保持平均 150 萬個同時連線。在修補程式星期二(微軟通常發布新軟體更新的那一天),出站流量可能會超過每秒 500 吉比特。

這些數字現在可能已經翻倍了,這也解釋了為什麼 WU 伺服器有時無法存取。我使用的是「檢查更新但讓我選擇」的 WU 選項,我自己的經驗是,有時檢查更新所需的時間比我願意等待的時間長,需要推遲。

Windows 7的悠久歷史

Windows 7於2009年7月22日發布。

Service Pack 的好處是安裝它會清除整個更新歷史記錄,因此實際上 WU 從零開始,就像全新安裝 Windows 後一樣。這當然會大大加快所有計算的速度,因為需要考慮的更新較少。

自 SP1 以來現有更新的絕對數量解釋了為什麼今天 WU 計算如此緩慢。對於微軟來說​​,這個問題可以透過升級到更新的 Windows 8.1 或 Windows 10 來「簡單地」解決,因此 WU 需要考慮的更新數量較少。

結論

由於微軟仍在繼續對 Windows 7 應用程式大量更新,隨著時間的推移,WU 的速度只會繼續放緩。

一種可能的優化是刪除過時的 Windows 更新。另一種是使用“檢查更新但讓我選擇”的WU選項,並在清晨或深夜檢查更新。

大多數更新也適用於Windows 8和10,因此當Windows 10很快發佈時,微軟WU伺服器的負擔只會倍增。微軟似乎也根據自己的政策來分配其 WU 伺服器的頻寬,重點是為更新的作業系統提供服務,因此我們應該預計,一旦 Windows 10 發布,Windows 7 的速度會再次放緩,並且更新速度會更快對於Windows 10。

如果 WU 太慢,唯一真正的解決方案是升級到更高版本的 Windows。

好消息:適用於 Windows 7(和 8.1)的 SP2 已發布

Microsoft 已經發布了 Windows 7 和 8.1 的 SP2。由於某些未知原因,Windows Update 無法提供此更新,因此必須手動下載並安裝。

請閱讀文章中有關如何獲取它的資訊:
微軟徹底修改了 Windows 7 和 8.1 更新——但不稱其為服務包

答案3

多年來,這個問題不斷出現,並不斷出現不同的修復方法,因此,這是我截至 2016 年 1 月 5 日為止針對此問題的更新指南

檢查下面的編輯部分,自 2016 年 5 月起全新安裝後,有一種更快的方法來完全更新 Windows 7 SP1。

當我重新安裝帶有 SP1 的 W7 或在檢查更新時遇到 Windows 更新問題時,我就是這樣做的。

如果未安裝 Service Pack 1,請先安裝它,然後再按照本指南進行操作。

下載 KB-3138612 並將其保存在以後可以找到的地方

下載 SUR 工具 將其儲存到同一位置

在 Windows 加載之前重新啟動 PC 並斷開與互聯網的連接,這很重要,因為每次啟動時 Windows 都會在後台檢查更新,這將再次開始檢查更新掛起,並阻止安裝下載的軟體包,直到完成檢查,因此在Windows 載入之前斷開與網際網路的連線可以防止這種情況發生。

啟動後安裝 KB-3138612,如果需要重新啟動,請執行此操作並保持與網路的連線。

現在安裝 SUR 工具包,這是一個很大的包,將安裝許多更新以及清理和修復 Windows 更新儲存。它還將減少以後需要安裝的 Windows 更新數量。

安裝 SUR 軟體包後重新啟動,連接到互聯網並執行手動 Windows 更新,現在應該運行得更快了。即使在這些修復之後,我也發現一些 W7 PC 如果從控制面板手動啟動,則需要長達一個小時才能完成更新檢查。

如果您有其他 Windows 更新問題並且安裝了上述 2 個更新,下載此 Microsoft Windows Update 修復工具(右鍵單擊“連結另存為”)運行它並選擇激進模式以完全重置 Windows 更新。重新啟動並再次嘗試從控制台進行 Windows 更新。當其他 Microsoft Fixit 工具失敗時,此工具可以修復問題,至少根據我的經驗。

更新:微軟有發布了 Windows 7 SP1 的大型更新匯總,這類似於服務包,但他們並不這樣稱呼它。這將使全新安裝後更新 Windows 7 的速度更快,不再出現 Windows 更新問題和多次重新啟動。此更新匯總將使系統更新至 2016 年 4 月星期二的補丁。

這不是透過 Windows Update 發布的,您必須使用 Internet Explorer 來取得它,開啟 IE 並前往此位址

http://catalog.update.microsoft.com/v7/site/home.aspx

在搜尋框中輸入 3125574 並按 Enter 鍵。

在此輸入影像描述

現在您將看到此匯總的所有版本,選擇您需要的版本並將其下載到稍後可以找到的位置。

在此輸入影像描述

也可以使用 Windows 更新目錄頁面首先下載並安裝此更新,3020369,它是匯總的先決條件,然後安裝 3125574,同時確保在應用這些更新時斷開互聯網連接。

答案4

如果過去的 XP 更新經驗有任何跡象的話,他們偶爾會讓我們在這裡使用指數時間演算法。一旦你有很多更新......就需要永遠。目前Win 7的更新也有類似的情況;需要很長時間,儘管目前還沒有對最近一輪緩慢的官方解釋。有趣的是,當他們推出新版本時,這種情況「就發生了」(對於舊版本)。憤世嫉俗的我忍不住想像有人可能故意希望這種情況發生,就像[舊] Windows 很慢一樣?你需要一個新版本。或許這只是 MS 開始假期的方式。

有一個針對某種 WU 緩慢問題的修補程序,該修補程序不會自動提供(即透過更新本身):https://support.microsoft.com/en-us/kb/3102810唉,這對我的情況並沒有真正的影響,我已經在兩台不同的計算機上嘗試過,一台是 32 位,一台是 64 位。而且它自 10 月以來就已經存在,所以它可能不是最新一期的。

相關內容