Windows Updateのチェックが遅いのはなぜ?

windows-7 windows-update

私はWindows7のPCで自動更新をオフにしています。月に一度くらいのペースで一括でアップデートをしています。しかし、毎回「更新のチェック」に15分から30分かかります。アップデートのチェックがなぜこんなに時間がかかるのか理解できません。バックグラウンドで何が起きているのか気になる。ハッシュを計算しているのだろうか?自動更新を有効にしている私のPCは、それが起動するたびに同じ運命に苦しむのでしょうか(私が気づいていなかったことだけ)

  124  some user  2015-03-16


ベストアンサー

アップデートのチェック部分がとても遅いからです

  • Windows 7 は コンポーネントベースのサービス を使用しています。つまり、Windows Update は、ファイルとコンポーネントの依存関係/相互依存関係を判断し、古いファイル/コンポーネントのサイド・バイ・サイド・バージョンを維持しながら、個々の更新プログラム/コンポーネントをアンインストールしても、他の更新プログラム/コンポーネントを壊すことなくアンインストールできるようにしながら、上位互換性や他に何があるかを考慮しなければならないということです。これらすべてを行うコードは非常に複雑なものでなければなりません

  • Windows 7の64ビットは、更新のたびに32ビット版と64ビット版の両方を維持しなければなりません

  • Windows は、更新ごとに GDR と LDR の両方のバージョンを維持する必要があり、Windows 7 64 ビットでは、更新ごとに 32 ビットの GDR、32 ビットの LDR、64 ビットの GDR、64 ビットの LDR が得られます

  • Windows Update の背後にあるコードは、その概念的な複雑さのためか、非常に非効率的です。ここ数年の私の観察では、リリースされたアップデートの総数が増えるにつれて、アップデートのチェック時間がほぼ指数関数的に増加しています。私には、これはある種の再帰的アルゴリズムが採用されていることを示していると思います

私たちにとって残念なことに、マイクロソフトはWindowsの内部について話すのが好きではないので、結局は自分たちで調べたり、推測したりしなければなりません

103  misha256  2015-07-02


この問題のいくつかの側面は、既存の解答の中で扱われていました。すでに言われていることを繰り返すことなく、一般的な方法で原因を列挙することで、それらを結びつけてみたいと思います

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

これらのポイントをもう少し詳しく見ていきましょう

Windows Updateの煩雑さ

アップデートがリリースされた後、時間の経過とともにさらに3つの異なるフェーズに入ることがあります。Revisions、Supersedence、およびExpirationです

アップデートリビジョン以前にリリースされた更新プログラムに変更が加えられた場合、これは更新リビジョンと呼ばれ、ダウンロードの一部が変更されます。これは部分的な更新であり、完全な更新ではありません

置き換えられたアップデートです。これは、以前のリリース、またはリリースを完全に置き換えるものです。マイクロソフトが複数のリリースを一つのパッケージにまとめ、そのパッケージがカプセル化されたアップデートを置き換えることがあります

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

また、アップデートには依存関係の仕組みがあり、アップデートによっては他のアップデートを先に適用しなければならない場合があります

期限切れの更新プログラムは、残念ながらコンピュータから削除されていないので、WUのパフォーマンスに問題があります。ディスククリーンアップを使って古いWindowsアップデートを削除する (WUは非常に壊れやすいので、まずシステムドライブのバックアップディスクイメージを取る)ことで、いくつかの改善が達成できるかもしれません

WU Calculations

膨大な数の組み合わせが考えられるため、マイクロソフトはWUサーバー上のすべてのアップデートを巨大なツリーの形式で保存しています。どのアップデートを適用する必要があるかを決定するには、クライアントにインストールされているハードウェアとソフトウェア、そしてすでにインストールされているすべてのアップデートを考慮に入れて、ツリーの剪定アルゴリズムによって行われますが、それ自体が膨大な事実の集合体であり、剪定の際にはすべてをうまく適用する必要があります

このアルゴリズムは成功が保証されていません。つまり、WU は OS を破壊したり、起動不能にしたりする可能性が完全にあるということです。これは完全に理解できます。例えば、アップデートA1、リビジョンA2を持つアップデートBがA1とA2の間にリリースされたとします。間違った決定が致命的になる可能性がある場合、インストールの順序がA1-B-A2またはA1-A2-Bでなければならないかどうかを考えてみてください

WUサーバーに過大な負担をかけています

ウィキペディアには、Windows Update statisticsについて次のように書かれています

2008年の時点で、Windows Updateには約5億個のクライアントがあり、1日あたり約3億5000万個のユニークスキャンを処理し、クライアントマシンへの平均150万個の同時接続を維持していました。マイクロソフトが通常、新しいソフトウェアアップデートをリリースするパッチチューズデーには、アウトバウンドトラフィックが毎秒500ギガビットを超えることがありました

これらの数字はおそらく今までに倍増しており、WUサーバーが時々アクセスできない理由を説明しています。私は「アップデートをチェックするが、私に選ばせる」というWUのオプションを使っていますが、私自身の経験では、アップデートのチェックには待つ時間よりも長い時間がかかり、延期が必要な日や時間があるということです

Windows 7の長い歴史

2009年7月22日にWindows 7がリリースされました。それから約17ヶ月後の2011年2月22日にService Pack 1(SP1)が出てきました。これは約4年半前のことなので、SP2の発売はかなり遅れていることになります

Service Pack の良いところは、Service Pack をインストールすることで更新履歴がすべて消去されるため、Windows の新規インストール後とまったく同じように、実質的に WU がゼロからスタートすることです。もちろん、これにより、考慮すべき更新プログラムの数が少なくなるため、すべての計算が大幅に高速化されます

SP1以降の既存のアップデートの数の多さが、今日のWUの計算が非常に遅い理由を説明しています。Microsoftにとってこの問題は、より新しいWindows 8.1やWindows 10にアップグレードすることで「単純に」解決できるので、WUは考慮すべきアップデートの数が少なくなります

Conclusion

マイクロソフトが相変わらずWindows 7に多数のアップデートを適用し続けているため、WUは時間が経つにつれて速度を落とし続けるだけだ

最適化する方法としては、古いWindowsの更新プログラムを削除が考えられます。もう一つは、「アップデートをチェックするが選択させる」というWUオプションを使用して、早朝か深夜にアップデートをチェックすることです

ほとんどのアップデートは Windows 8 と 10 にも適用されるので、Microsoft の WU サーバーへの負担は、Windows 10 がまもなくリリースされたときにだけ大きくなるだろう。Microsoftはまた、最新のオペレーティングシステムにサービスを提供することに重点を置いて、独自のポリシーに従ってWUサーバーの帯域幅を分割しているようですので、Windows 10がリリースされた後は、Windows 7がまた遅くなり、Windows 10のアップデートが不釣り合いに速くなることを期待しなければなりません

WUが遅すぎる場合、唯一の本当の解決策は、Windowsの遅いバージョンにアップグレードすることです

朗報 : Windows 7 (および 8.1) 用の SP2 が到着しました

Microsoftは、実際にはWindows 7と8.1用のSP2となっているものを公開しました。このアップデートは、何らかの不明な理由でWindows Updateから利用できなくなるため、手動でダウンロードしてインストールする必要があります

記事でそれを取得する方法について読んでください。 MicrosoftはWindows 7と8.1アップデートをオーバーホールしました

60  harrymc  2015-07-02


この問題は何年にもわたってさまざまな修正が行われてきたので、ここでは2016年1月5日現在のこの問題に関する私の更新ガイドをご紹介します

以下のEDITセクションをチェックして、2016年5月現在、クリーンインストール後にWindows 7 SP1を完全にアップデートするためのはるかに速い方法があります

これは、SP1でW7を再インストールしたり、Windowsのアップデートのチェックで立ち往生している問題を抱えているときに行うものです

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

KB-3138612をダウンロードし、後で見つけられる場所に保存してください

SUR ツールをダウンロード 同じ場所に保存してください

PCを再起動し、Windowsがロードされる前にインターネットから切断してください, これは、すべてのブート時にWindowsがバックグラウンドでアップデートをチェックし、これはすべての上に再びハングアップアップデートのチェックを開始し、それがチェックを終了するまで、ダウンロードしたパッケージのインストールを防ぐことができますので、Windowsがロードされる前にインターネットから切断することは、これを防ぐために重要です

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

これは大きなパッケージで、Windows アップデートストアのクリーンアップと修復に加えて、多くのアップデートをインストールします。また、後からインストールする必要がある Windows アップデートの数を減らすことができます

SUR パッケージをインストールした後、再起動してインターネットに接続し、手動で Windows Update を実行すると、かなり速く動作するようになるはずです。これらの修正を行った後でも、コントロールパネルから手動で起動した場合、アップデートのチェックが終わるまでに1時間かかるPCもありました

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

更新: マイクロソフトはWindows 7 SP1用の巨大なアップデートロールアップをリリースしました, これはサービスパックに似ていますが、彼らはそれをそう呼んでいません。これにより、クリーンインストール後にWindows 7をアップデートするのが非常に速くなり、これ以上のWindowsアップデートの問題や何度も再起動する必要がなくなります。この更新ロールアップは、2016年4月のパッチ火曜日にシステムの現在をもたらします

これはWindows Updateではリリースされていないので、入手するにはInternet Explorerを使わなければならず、IEを開いてこのアドレスに行きます

Microsoft Update Catalog

検索ボックスに3125574と入力してエンターキーを押します

enter image description here

今、あなたはこのロールアップのすべてのバージョンが表示されます、あなたが必要とするものを選択して、後でそれを見つけることができるどこかにダウンロードします

enter image description here

また、Windows Update Catalogページを使用して、最初にこの更新プログラムをダウンロードしてインストールし、3020369、それはロールアップのための前提条件であり、次に3125574をインストールします

23  Moab  2016-01-16


スキャン中にETW/WPR/WPAでCPU使用量を確認するとすると、CPU使用量はwuaueng.dll!CUpdatesToPruneList::AddSupersedenceInfoIfNeededから呼び出されるwuaueng.dll!CAgentUpdateManager::FindUpdatesから来ていることがわかります。AddSupersedenceInfoIfNeededメソッドが一番遅いです。これは名前が示す通りのことを行い、提供された/インストールされたWindows 7の更新プログラムがまだ必要なのか、または置き換えられた(古い/新しいものに置き換えられた)のかを調べます。これは非常に遅いです

前回の2016年6月からのWindows Update Clientアップデートで、Windows 7 July 2016 Update Rollupの一部となっているため、アップデート検索が再び高速化しています

  1. Download:

新しい更新プログラムを検索するのに1分ちょっとしかかからない。アップデートKB3172605のセットアップを高速化するには、WindowsUpdateサービス(net stop wuauserv)を停止します

このWUサービス停止トリックは、いくつかのMSUアップデートをインストールすると、インストールを大幅に高速化します

@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
FOR /R "%~dp0" %%A IN (*Windows6.1-KB*.MSU) DO (
CALL :SUB %%~nA
ECHO= Installing KB!KB_NUM!
>NUL net stop wuauserv
WUSA "%%A" /quiet /norestart)
ECHO= == Press any key to close the Window ==
>NUL PAUSE

GOTO :EOF

:SUB

SET "KB_NUM=%*"
FOR /F "DELIMS=-" %%B IN ("%KB_NUM:*-KB=%") DO SET "KB_NUM=%%B"

Windows 10では、Microsoftは私の提案に従うことで問題を修正し、更新を累積的に行うようにしました。ここでは、現在のパッチレベルになるために必要な大型アップデートは1つだけです。この遅いチェックはもう必要ありません

9  magicandre1981  2016-04-08


XP のアップデートでの過去の経験が何かの兆候であるならば、彼らは時折 そこに指数関数的時間アルゴリズムを滑り込ませていますいったん多くの更新があると…永遠にかかります。現在のところ、Win 7のアップデートは似たような状況にあります; 長い時間がかかります, まだ遅さのこの最新の試合のための公式な説明はありませんが.それは彼らが新しいものを持っているときにこれが “ちょうど起こる “ことは興味深いです (古いバージョンに)。皮肉屋の私は、誰かが意図的にそうなって欲しいと思っているのではないかと想像せずにはいられません。新しいバージョンが必要です。あるいは、ホリデーシーズンを始めるためのMSのやり方なのかもしれません

WU の遅さに対するある種の修正プログラムがありますが、これは自動的には提供されていません (つまり、アップデート自体を経由して)。https://support.microsoft.com/en-us/kb/3102810 残念ながら、私の場合、これは本当の違いはありませんでした。また、それは10月から続いているので、おそらく最新の問題[s]には対応していません

3  SX welcomes ageist gossip  2015-12-11


現在、Windowsが稼働しているPCは約10億台あります。各PCには、ハードウェア、アクセサリー、OSバージョン、言語、IE、デバイスドライバのバージョン、様々なパッチレベルのMicrosoftソフトウェア、セキュリティアップデートなどの組み合わせがあります。Windows Updateシステムは、個々のPCに適切なアップデートを提供するために、これらすべての組み合わせを選別しなければなりません。各更新プログラムは、依存関係や「優先順位」構造などのプロパティを持っています

スキャンの最初のステップ(最初の実行)は、OSのバージョン、SP、言語、PCのメーカーを決定し、PCのアップデートの可能性の高いツリーを剪定することです。その最初のスキャンに基づいて、アップデートIDの可能性の高いセットがデバイスに送信され、ローカルクライアントはどのアップデートがインストールされているか、置き換えられているかなどを計算し、そのリストをサーバーに送信し、また、その後のスキャンのためにローカルにコピーをキャッシュします。サーバーはクライアントからの更新要求に対して、UI に表示される説明などで応答します(適切な UI 言語で)

1日に一度、バックグラウンドで自動更新クライアントによってチェック更新が行われ、インストールされている更新プログラムのローカル・キャッシュがリフレッシュされるので、その後のスキャンはデルタで高速になります。これらは、PC上の%windir%softwaredistributionフォルダに格納されています

以前にダウンロードしたアップデートについても同様の処理が行われます。サービスはパッケージの再ダウンロードを行いません

少なくとも検索中に実際に何が起こっているのかを理解するのに役立つであろうこの投稿を見つけました。見事に書かれています。だから私はそのようなものとしてそれを投稿しています。あなたはここで元の投稿を見つけることができます

Windowsのアップデート設定をCheck for updates but let me choose whether to download and install themに変更したところ、インストール時のアップデート確認にかかる時間に顕著な変化がありました

2  Renju Chandran chingath  2015-07-02


私の意見では、あなたの最善の策は、ちょうどWindowsのアップデートを有効にして、アップデートをダウンロードすることができますが、自動的にインストールしないオプションに切り替えることです。そのように、あなたがチェックやバックグラウンドファイルのダウンロードを待つことなくインストールしたいものを得ることができます

さて、なぜ遅いのかの答えです。私はそれが単にWindowsのアップデートは、念頭に置いてユーザーに顕著な影響の削減を使用して構築されたという事実に来ると思います。それは、更新プログラムをチェックしてダウンロードするためにBITSサービス(バックグラウンドインテリジェント転送サービス)を使用しています

繰り返しになりますが、このサービスの焦点は、ユーザーを混乱させない方法で作業することです。マイクロソフトでは、顧客が毎月更新サービスをオンにしたりオフにしたりすることを意図していないため、スピードは意図的に遅くなっています

あなたが検討するかもしれないのは、あなた自身の WSUS サーバのセットアップを取得することです。そうすれば、企業の管理者と同じように更新を拒否することができ、選択された更新をあなたが所有しているすべての Windows デバイスに適用したり拒否したりすることができます。選択的にアップデートをするという面倒な作業が軽減されます

1  Geruta  2015-07-01


Windows Update や他のいくつかの Windows システムコンポーネントが Microsoft JET Blue データベースエンジンを使用しているため遅いのです

他の人が述べているように、Windows Updateのコード自体にもある程度の再帰性があるようで、更新回数が増えるにつれてパフォーマンスが低下します

1  Jure Sah  2015-10-20


ただ、もう一つデータポイントを追加します。最近、VistaのPCを持ち出すことになった。手動でVistaをSP1からSP2にアップグレードしたのだが、アップデートのチェックに時間がかかる。24時間以上何も起こらなかった

私はいくつかのグーグルで調べたところ、以下のアップデートのインストールを含む解決策を見つけました

http://www.catalog.update.microsoft.com/Search.aspx?q=KB3205638%20vista http://www.catalog.update.microsoft.com/Search.aspx?q=KB4012583%20vista http://www.catalog.update.microsoft.com/Search.aspx?q=KB4015195%20vista http://www.catalog.update.microsoft.com/Search.aspx?q=KB4015380%20vista

手動でアップデートをダウンロードしてインストールした後私は10分間アップデートチェックを実行し、それは200のアップデートを発見しました。これはVistaのためのものであることを念頭に置いてくださいが、私は多分同様の何かがWindows 7のためにあまりにも存在すると思います

0  some user  2018-05-08


私はこの問題があり、私がしたことは、インストールしたばかりのマシンで初めてWindows Updateを一晩実行させることでした。上手くやるためのコツ

  • エネルギーオプションに移動し、待機時間を「絶対に」に設定します

  • Windows Updateの自動更新をオンにします。検索処理にも時間がかかるので、デフォルトの午前3時00分でOKです

  • また、「Windowsのアップデートは、いくつかのコンポーネントを更新する必要があります…」というプロセスを最初に行うことをお勧めします(Windows 7の場合の200以上のアップデートと比較して、すぐに行きます)

すべてが正しく更新されていると、膨大な量のパッチ(約200個)がインストールされていることがわかります。また、Windowsもデフラグを行い、Windows Defenderのアップデート/スキャンを実行しました

その後、残りのWindows Updateサイクル(更新プログラムの検索 – インストール – 再起動 – 更新プログラムの検索 – インストール – 再起動 – 更新プログラムの検索 … #更新プログラムが0になるまで)の動作が非常に速くなります

-1  dreael  2015-10-24


ハッシュ化ではありませんが、そうですね、かなりチェックしています(いくつかのDLLのファイルバージョンと同じくらい深い)。どのシステムを使っていても遅いです

解決策としては、オフにしておいて、あまり必要のない日や夜があるときはオンにして、強制的にアップデートのチェックをして、全部インストールさせる

-2  Overmind  2015-03-16


タイトルとURLをコピーしました