Windows Update のチェックがなぜこんなに遅いのでしょうか?

Windows Update のチェックがなぜこんなに遅いのでしょうか?

自動更新がオフになっている Windows 7 PC を持っています。月に 1 回程度、一括更新を行っています。しかし、毎回「更新の確認」に 15 分から 30 分かかります。更新の確認がなぜこんなに遅いのか理解できません。バックグラウンドで何が起こっているのか疑問に思います。ハッシュを計算しているのでしょうか。自動更新が有効になっている PC は、起動するたびに同じ運命をたどるのでしょうか (私が知らなかっただけです)。

答え1

アップデートの確認部分が遅いのは、次の理由によるものです:

  • Windows 7ではコンポーネントベースのサービスつまり、Windows Update は、ファイルとコンポーネントの依存関係/相互依存関係を判別し、古いファイル/コンポーネントの並列バージョンを維持しながら、個々の更新プログラム/コンポーネントをアンインストールできるようにしながら、他の更新プログラム/コンポーネントを壊さずに、さらに、優先性やその他のことを考慮に入れるために、途方もなく努力しなければなりません。これらすべてを実行するコードは、とてつもなく複雑に違いありません。

  • Windows 7 64 ビットでは、各更新プログラムの 32 ビット バージョンと 64 ビット バージョンの両方を維持する必要があります。

  • Windowsは両方を維持する必要がある東ドイツと旧ドイツ各更新プログラムのバージョンが提供されます。つまり、Windows 7 64 ビットでは、各更新プログラムに対して 32 ビット GDR、32 ビット LDR、64 ビット GDR、64 ビット LDR が提供されます。

  • Windows Update の背後にあるコードは、おそらくその概念の複雑さのせいで、非常に非効率的です。過去数年間の私の観察では、リリースされた更新プログラムの総数が増加するにつれて、更新プログラムのチェック時間がほぼ指数関数的に増加しています。私にとって、これは、おそらく置き換えを決定したり、依存関係を解決したりするために、何らかの再帰アルゴリズムが使用されていることを示しているようです。

残念なことに、Microsoft は Windows の内部について話すことを好まないため、結局は私たち自身で理解するか推測するしかありません。

答え2

この問題のいくつかの側面は、既存の回答で取り上げられています。私は、すでに述べられたことを繰り返さずに、一般的な方法で原因を列挙することで、それらを結び付けてみたいと思います。

  1. Microsoft Windows Updateの仕組みは非常に洗練されており、残念ながら複雑でもあります。
  2. WUは数え切れないほどのハードウェアとソフトウェアの組み合わせをサポートする必要がある
  3. WUは正しい順序でアップデートを適用する必要がある
  4. Windows 7は古いシステムであり、SP2は遅れており、おそらくリリースされないため、更新が非常に多くなります。
  5. 過去数年間、マイクロソフトは多数のセキュリティ問題を修正するという大きなプレッシャーにさらされており、その結果、非常に多くの修正が慌ただしく行われ、その後、修正の修正が何世代にもわたって続きました。
  6. Microsoft は、一般的に指数アルゴリズムである更新メカニズムを十分に最適化することができず、結果としてかなり遅いブルート フォース アルゴリズムになっています。
  7. Microsoft の WU サーバーは、時々過負荷になることがあります。

これらの点をさらに詳しく見てみましょう。

Windows Update の複雑さ

更新プログラムがリリースされた後、時間の経過とともに、改訂、置き換え、有効期限という 3 つの異なるフェーズに進む場合があります。

更新リビジョン: 以前にリリースされたアップデートに変更が加えられた場合、それはアップデート リビジョンと呼ばれ、ダウンロードの一部が変更されます。これは、アップデートの完全置き換えではなく、部分置き換えです。

置き換えられた更新: これは、以前のリリースの完全な置き換えです。Microsoft では、複数のリリースを 1 つのパッケージにまとめることがあり、そのパッケージがカプセル化された更新プログラムを置き換えます。

期限切れのアップデート: これらは、有効な更新プログラムのリストから削除された更新プログラムです。このような更新プログラムは適用できなくなり、インストール時に検出されません。ほとんどの場合、更新プログラムは、置き換えられた更新プログラムに置き換えられた後に期限切れになります。

更新には依存関係のメカニズムもあり、一部の更新では最初に他の更新を適用する必要がある場合があります。

期限切れの更新プログラムは、残念ながらコンピュータから削除されず、計算に引き続き関与するため、WUのパフォーマンスに問題を引き起こします。また、更新プログラムの数が非常に多いため、ディスククリーンアップを使用して、ある程度の改善が達成される可能性があります。古くなったWindowsアップデートを削除する (WU も非常に壊れやすいため、最初にシステム ドライブのバックアップ ディスク イメージを作成してください)。

WU 計算

考えられる組み合わせが膨大な数に上るため、Microsoft は WU サーバー上のすべての更新プログラムを巨大なツリーの形式で保存しています。適用する必要がある更新プログラムの決定は、クライアントにインストールされているハードウェアとソフトウェア、および既にインストールされているすべての更新プログラムを考慮したツリー プルーニング アルゴリズムによって行われます。ツリー プルーニング アルゴリズムは、それ自体がプルーニング時にすべて正常に適用する必要がある大量の事実です。

このアルゴリズムが成功する保証はありません。つまり、WU は OS を破壊したり、起動不能にしたりすることも可能です。これは完全に理解できます。たとえば、更新 A1 があり、リビジョン A2 があり、A に依存する更新 B が A1 と A2 の間にリリースされた場合です。では、間違った決定が致命的になる可能性がある場合、インストールの順序は A1-B-A2 にすべきか、それとも A1-A2-B にすべきかを考えてみましょう。

過負荷の WU サーバー

Wikipediaにはこう書いてあるWindows Update の統計:

2008 年時点で、Windows Update には約 5 億のクライアントがあり、1 日あたり約 3 億 5,000 万のユニーク スキャンが処理され、クライアント マシンへの同時接続は平均 150 万件に上りました。Microsoft が通常新しいソフトウェア更新プログラムをリリースする Patch Tuesday には、送信トラフィックが 1 秒あたり 500 ギガビットを超えることもありました。

これらの数字はおそらく今では 2 倍になっており、WU サーバーが時々アクセス不能になる理由を説明しています。私は「更新をチェックするが、選択する」という WU オプションを使用していますが、私の経験では、更新のチェックに待ち時間よりも長くかかり、延期しなければならない日や時間があります。

Windows 7の長い歴史

Windows 7 は 2009 年 7 月 22 日にリリースされました。約 17 か月後、Service Pack 1 (SP1) が 2011 年 2 月 22 日にリリースされました。これは約 4.5 年前のことで、SP2 がリリースされるのはずっと遅れていたことになります。

サービス パックの利点は、インストールすると更新履歴全体が消去されるため、実質的に WU がゼロから開始され、Windows を新規インストールした後とまったく同じになる点です。もちろん、考慮する更新が少なくなるため、すべての計算が大幅に高速化されます。

SP1 以降の既存の更新プログラムの数が膨大であることが、WU の計算が現在非常に遅い理由を説明しています。Microsoft の場合、この問題は「単純に」最新の Windows 8.1 または Windows 10 にアップグレードするだけで解決できるため、WU で考慮する更新プログラムの数は少なくなります。

結論

Microsoft は Windows 7 に多数のアップデートを適用し続けているため、時間が経つにつれて WU は遅くなる一方です。

最適化の1つの方法は、古くなったWindowsアップデートを削除するもう 1 つは、「更新プログラムを確認するが、選択する」という WU オプションを使用して、早朝または深夜に更新プログラムを確認することです。

ほとんどのアップデートは Windows 8 と 10 にも適用されるため、Windows 10 が間もなくリリースされると、Microsoft の WU サーバーの負荷は倍増するばかりです。Microsoft は、より新しいオペレーティング システムの提供に重点を置いて、独自のポリシーに従って WU サーバーの帯域幅を分割しているようです。そのため、Windows 10 がリリースされると、Windows 7 の速度が再び低下し、Windows 10 のアップデートが不釣り合いに高速化することが予想されます。

WU が遅すぎる場合、唯一の現実的な解決策は、Windows の新しいバージョンにアップグレードすることです。

朗報:Windows 7(および8.1)のSP2がリリースされました

Microsoft は、Windows 7 および 8.1 用の SP2 を公開しました。この更新プログラムは、何らかの理由で Wi​​ndows Update から入手できないため、手動でダウンロードしてインストールする必要があります。

入手方法については、次の記事をお読みください:
マイクロソフトがWindows 7と8.1のアップデートを全面的に見直したが、サービスパックとは呼ばない

答え3

この問題は、長年にわたってさまざまな修正をしながら発生したり消えたりしてきました。そこで、2016年1月5日現在のこの問題に関する最新のガイドをここに示します。

以下の編集セクションを確認してください。2016 年 5 月現在、クリーン インストール後に Windows 7 SP1 を完全に更新するはるかに高速な方法があります。

これは、SP1 を適用した W7 を再インストールする場合、または Windows Update が更新プログラムの確認で停止する問題が発生した場合に実行する方法です。

Service Pack 1 がインストールされていない場合は、このガイドに従う前にインストールしてください。

KB-3138612 をダウンロード 後で見つけられる場所に保存します

SURツールをダウンロード 同じ場所に保存する

PC を再起動し、Windows がロードされる前にインターネットから切断します。これは、起動するたびに Windows がバックグラウンドで更新をチェックし、これにより更新のチェックが再度開始され、チェックが完了するまでダウンロードしたパッケージのインストールが妨げられるため重要です。そのため、Windows がロードされる前にインターネットから切断すると、これを防ぐことができます。

起動したら KB-3138612 をインストールし、再起動が必要な場合は再起動し、インターネットから切断されたままにします。

次に、SUR ツール パッケージをインストールします。これは大きなパッケージであり、Windows アップデート ストアのクリーンアップと修復とともに、多数のアップデートがインストールされます。また、後でインストールする必要がある Windows アップデートの数も削減されます。

SUR パッケージのインストール後に再起動し、インターネットに接続して手動で Windows Update を実行すると、動作がはるかに速くなるはずです。これらの修正後でも、コントロール パネルから手動で起動した場合、一部の W7 PC では更新プログラムのチェックが完了するまでに最大 1 時間かかることが確認されています。

他のWindowsアップデートの問題があり、上記の2つのアップデートがインストールされている場合は、このMicrosoft Windows Update Fixitツールをダウンロードしてください(右クリックして「リンクを名前を付けて保存」) 実行し、アグレッシブ モードを選択して Windows アップデートを完全にリセットします。再起動して、コントロール パネルからもう一度 Windows アップデートを試してください。少なくとも私の経験では、このツールは他の Microsoft Fixit ツールが失敗した場合に問題を修正します。

アップデート:マイクロソフトはWindows 7 SP1の大規模なアップデートロールアップをリリースこれはサービス パックに似ていますが、そのようには呼ばれていません。これにより、クリーン インストール後の Windows 7 の更新がはるかに高速になり、Windows 更新の問題や何度も再起動する必要がなくなります。この更新プログラムのロールアップにより、システムは 2016 年 4 月の Patch Tuesday に最新の状態になります。

これはWindows Updateではリリースされないので、Internet Explorerを使用して入手する必要があります。IEを開いてこのアドレスにアクセスしてください。

マイクロソフト

検索ボックスに「3125574」と入力し、Enter キーを押します。

ここに画像の説明を入力してください

これで、このロールアップのすべてのバージョンが表示されるので、必要なものを選択し、後で見つけられる場所にダウンロードします。

ここに画像の説明を入力してください

また、Windows Updateカタログページを使用して、まずこのアップデートをダウンロードしてインストールしてください、3020369これはロールアップの前提条件であるため、3125574 をインストールし、これらの更新プログラムを適用するときは必ずインターネットから切断してください。

答え4

XPアップデートの過去の経験から判断すると、指数時間アルゴリズムをそこに組み込むアップデートが多すぎると、永遠にかかることになります。現在、Win 7 のアップデートも同様の状況で、時間がかかりますが、この最近の遅延についてはまだ公式な説明はありません。新しいバージョンがリリースされると、古いバージョンでは「ただ起こる」というのは興味深いことです。皮肉屋の私には、誰かが意図的にそれを望んでいるのではないかと想像せずにはいられません。たとえば、「[古い] Windows は遅い? 新しいバージョンが必要です」というように。あるいは、単に MS のホリデー シーズンの始まり方なのかもしれません。

ある種の WU の遅さに対する修正プログラムがありますが、これは自動的には提供されません (つまり、更新自体を通じては提供されません)。https://support.microsoft.com/ja-jp/kb/3102810 より残念ながら、私のケースでは大きな違いはありませんでした。32 ビットと 64 ビットの 2 台のコンピューターで試してみました。また、この問題は 10 月から発生しているため、最新の問題には対応していない可能性があります。

関連情報