自動更新がオフになっているWindows 7 PCがあります。私は月に1回程度バッチで更新を行います。ただし、「更新の確認」には15〜30分かかります。更新の確認が非常に遅くなる理由がわかりませんか?バックグラウンドで何が起こっているのだろうか。ハッシュを計算していますか?自動更新が有効になっている私のPCは、起動するたびに同じ運命をたどりますか(私が知らなかったことだけ)。
自動更新がオフになっているWindows 7 PCがあります。私は月に1回程度バッチで更新を行います。ただし、「更新の確認」には15〜30分かかります。更新の確認が非常に遅くなる理由がわかりませんか?バックグラウンドで何が起こっているのだろうか。ハッシュを計算していますか?自動更新が有効になっている私のPCは、起動するたびに同じ運命をたどりますか(私が知らなかったことだけ)。
回答:
更新部分のチェックは、次の理由で非常に遅いです。
Windows 7はコンポーネントベースのサービスを使用します。つまり、Windows Updateはファイルとコンポーネントの依存関係/相互依存関係を判断するために途方もなく一生懸命に作業し、古いファイル/コンポーネントのサイドバイサイドバージョンを維持しながら、個々の更新プログラムをアンインストールする必要があることを意味します/ componentsが、他の更新/コンポーネントを壊すことなく、すべてを考慮しながら、優先順位と神は他のことを知っています。これをすべて実行するコードは、非常に複雑でなければなりません。
Windows 7 64ビットでは、各更新の32ビットバージョンと64ビットバージョンの両方を維持する必要があります。
Windowsは各更新のGDRとLDRの両方のバージョンを維持する必要があります。つまり、Windows 7 64ビットでは、更新ごとに32ビットGDR、32ビットLDR、64ビットGDR、64ビットLDRを取得します。
Windows Updateの背後にあるコードは、おそらくその概念的な複雑さのために、非常に非効率的です。過去数年間の私の観察では、リリースされたアップデートの総数が増加するにつれて、アップデートのチェック時間がほぼ指数関数的に増加しました。私にとっては、これはおそらく、優先順位を決定したり、依存関係を解決したりするために、何らかの再帰アルゴリズムが採用されていることを示しています。
残念なことに、MicrosoftはWindowsの内部について話すのが好きではないので、結局は自分で把握するか推測する必要があります。
問題のいくつかの側面は、既存の回答で扱われました。すでに言われたことを繰り返さずに、一般的な方法で原因をリストすることでそれらを結び付けようとします:
これらのポイントをさらに詳しく見てみましょう。
Windows Updateの複雑さ
更新プログラムがリリースされると、次の3つの異なるフェーズに進むことができます:改訂、置き換え、および有効期限。
更新リビジョン:以前にリリースされた更新に変更が加えられた場合、それは更新リビジョンと呼ばれ、ダウンロードの一部が変更されます。これは、完全ではなく部分的な更新の置き換えです。
置き換えられた更新:これは、以前のリリースの完全な置き換えです。Microsoftが複数のリリースを1つのパッケージにラップし、そのパッケージがカプセル化された更新を置き換える場合があります。
期限切れの更新:有効な更新のリストから削除された更新です。このような更新は適用されなくなり、インストールのために検出されません。ほとんどの場合、更新プログラムは置き換えられた更新プログラムに置き換えられた後、期限切れになります。
更新には依存性メカニズムもあります。つまり、一部の更新では、最初に他の更新を適用する必要がある場合があります。
期限切れの更新は、残念ながらコンピューターから削除されないため、WUのパフォーマンスに問題があります。そのため、更新にはまだ計算に参加しており、非常に多くの更新があります。ディスククリーンアップを使用して古いWindows Updateを削除することにより、ある程度の改善が実現する場合があります (WUも非常に壊れやすいため、最初にシステムドライブのバックアップディスクイメージを取得します)。
WUの計算
多数の可能な組み合わせのため、Microsoftは巨大なツリーの形式でWUサーバー上のすべての更新を保持します。どの更新を適用する必要があるかは、クライアントのインストールされたハードウェアとソフトウェア、および既にインストールされているすべての更新を考慮したツリープルーニングアルゴリズムによって決定されます。プルーニング時にすべて正常に適用されます。
このアルゴリズムが成功することは保証されていません。つまり、WUはOSを完全に破壊したり、起動不能にしたりすることもできます。これは完全に理解できます。たとえば、リビジョンA2を持つアップデートA1を使用すると、Aに依存するアップデートBがA1とA2の間でリリースされます。次に、間違った決定が致命的となる可能性がある場合に、インストールの順序をA1-B-A2とA1-A2-Bのどちらにするかを考えます。
過負荷のWUサーバー
ウィキペディアでは、Windows Updateの統計について次のように述べています。
2008年現在、Windows Updateには約5億のクライアントがあり、1日あたり約3億5,000万の一意のスキャンを処理し、クライアントマシンへの平均150万の同時接続を維持しています。マイクロソフトが通常新しいソフトウェア更新プログラムをリリースする日であるパッチ火曜日に、発信トラフィックは毎秒500ギガビットを超える可能性があります。
これらの数はおそらく今では2倍になっており、WUサーバーが時々到達できない理由を説明しています。私は「アップデートの確認は選択できます」というWUオプションを使用していますが、私自身の経験では、アップデートの確認に待つよりも時間がかかり、延期が必要になる場合があります。
Windows 7の長い歴史
Windows 7は2009年7月22日にリリースされました。約17か月後、2011年2月22日にService Pack 1(SP1)がリリースされました。これは約4.5年前のことです。
Service Packの良い面は、インストールすると更新履歴全体が消去されるため、Windowsの新規インストール後とまったく同じように、事実上WUがゼロから開始することです。考慮すべき更新が少ないため、これはもちろんすべての計算を非常に高速化します。
SP1以降の膨大な数の既存の更新により、今日のWU計算が非常に遅い理由が説明されています。Microsoftの場合、最新のWindows 8.1またはWindows 10にアップグレードすることで問題を「簡単に」解決できるため、WUでは考慮すべき更新の数が少なくなります。
結論
マイクロソフトは引き続きWindows 7に多数の更新プログラムを適用し続けているため、WUは時間が経過しても速度が低下し続けるだけです。
可能な最適化の1つは、古いWindows Updateを削除することです。もう1つは、「更新を確認するが選択させてください」という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の記事をご覧ください。MicrosoftはWindows 7および8.1の更新を全面的に見直しましたが、サービスパックとは呼ばないでください。
この問題は長年にわたってさまざまな修正が加えられてきたため、2016年1月5日現在のこの問題に関する最新のガイドを次に示します。
以下の編集セクションを確認してください。2016年5月のクリーンインストール後、Windows 7 SP1を完全にアップデートするはるかに速い方法があります。
これは、W7 SP1を再インストールするとき、またはWindows Updateで更新プログラムのチェックでスタックする問題があるときに行うことです。
Service Pack 1がインストールされていない場合は、このガイドに従う前にインストールしてください。
KB-3138612 をダウンロードして、後で見つけられる場所に保存します
Windowsが読み込まれる前にPCを再起動し、インターネットから切断します。これは重要です。すべてのブートウィンドウでバックグラウンドで更新を確認し、更新の確認を繰り返します。チェックしているため、Windowsがロードされる前にインターネットから切断すると、これが防止されます。
起動したらKB-3138612をインストールし、再起動が必要な場合は再起動し、インターネットから切断されたままにします。
次に、SURツールパッケージをインストールします。これは大きなパッケージであり、Windows更新ストアのクリーンアップと修復とともに多くの更新プログラムをインストールします。また、後でインストールする必要があるWindows更新プログラムの数も削減されます。
SURパッケージの再起動のインストール後、インターネットに接続して手動でWindows Updateを実行すると、すぐに動作するはずです。これらの修正を行った後でも、一部のW7 PCがコントロールパネルから手動で起動された場合、更新の確認を完了するまでに最大1時間かかることがあります。
他のWindowsアップデートの問題があり、上記の2つのアップデートがインストールされている場合、このMicrosoft Windows Update fixitツールをダウンロードして(「リンクを保存」を右クリック)実行し、アグレッシブモードを選択してWindowsアップデートを完全にリセットします。再起動して、コントロールパネルからWindows Updatesを再試行します。このツールは、少なくとも私の経験では、他のMicrosoft fixitツールが失敗したときに問題を修正します。
更新: MicrosoftはWindows 7 SP1の巨大な更新プログラムのロールアップをリリースしました。これはサービスパックに似ていますが、それを呼び出していません。これにより、クリーンインストール後のWindows 7の更新がはるかに高速になり、Windowsの更新の問題がなくなり、再起動が多くなります。この更新プログラムのロールアップにより、システムは2016年4月の火曜日に更新されます。
これはWindows Updateを通じてリリースされていません。InternetExplorerを使用して取得し、IEを開いてこのアドレスにアクセスする必要があります。
検索ボックスに3125574と入力し、Enterキーを押します。
これで、このロールアップのすべてのバージョンが表示され、必要なものを選択して、後で見つけることができる場所にダウンロードします。
また、Windows Updateカタログページを使用して、この更新プログラム3020369を最初にダウンロードしてインストールします。これは、ロールアップの前提条件です。次に3125574をインストールします。
あなたは使用する場合、CPU使用率をチェックするETW / WPR / WPAを使用すると、CPU使用率がから来ていることがわかり、スキャン中wuaueng.dll!CUpdatesToPruneList::AddSupersedenceInfoIfNeeded
から呼び出されますwuaueng.dll!CAgentUpdateManager::FindUpdates
。AddSupersedenceInfoIfNeeded方法は最も遅いものです。これは、名前が示すことを実行し、提供/インストールされたWindows 7の更新プログラムがまだ必要であるか、置き換えられている(新しいもので古い/置き換えられている)かどうかを調べます。これは非常に遅いです。
2016年7月のWindows 7更新プログラムロールアップの一部である2016年6月からの最後のWindows Updateクライアントの更新により、更新プログラムの検索が再び高速になりました。
新しい更新を検索するのに1分以上かかりません。更新KB3172605のセットアップを高速化するには、WindowsUpdateサービスを停止します(net stop wuauserv
)。
複数のMSU更新をインストールすると、このWUサービス停止のトリックによりインストールが大幅に高速化されます。
@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つの大きな更新のみです。この遅いチェックはもう必要ありません。
XPアップデートの過去の経験が何らかの兆候である場合、彼らは時折そこに指数時間アルゴリズムをスリップさせます。一度多くの更新があると...永遠にかかります。現在、Win 7アップデートは同様の状況にあります。時間がかかりますが、この最新の遅さについての公式な説明はまだありません。彼らが新しいものを手に入れたときに、この「ちょうど起こる」(古いバージョンに対して)のは興味深いことです。シニカルな私は、[古い] Windowsの流れに沿って、誰かが意図的にそれを起こして欲しいと想像するのを手伝うことはできません。新しいバージョンが必要です。それとも、ホリデーシーズンを開始するための単なるMSの方法なのかもしれません。
ある種のWUの速度低下に対する修正プログラムがありますが、これは自動的に(つまり、更新自体を介して)提供されません:https : //support.microsoft.com/en-us/kb/3102810残念ながら、実際の違いはありません私の場合、32ビットと64ビットの2台の異なるコンピューターで試しました。また、10月からリリースされているため、おそらく最新号ではありません。
現在、Windowsを実行しているPCは約10億台あります。各PCには、ハードウェア、アクセサリ、OSバージョン、言語、IE、デバイスドライバーバージョン、さまざまなパッチレベルのMicrosoftソフトウェア、セキュリティ更新などの組み合わせがあります。WindowsUpdateシステムは、これらのすべての組み合わせをソートして適切な更新を提供する必要があります個々のPC。各更新プログラムには、依存関係や「置換」構造などのプロパティがあります。
スキャンの最初のステップ(最初の実行)は、OSバージョン、SP、言語、PCメーカーを決定して、PCの可能性のある更新のツリーをプルーニングすることです。その最初のスキャンに基づいて、可能性のある更新IDのセットがデバイスに送信され、ローカルクライアントがインストールされている更新、置き換えられた更新などを計算してから、そのリストをサーバーに送信し、その後のスキャンのためにコピーをローカルにキャッシュします。サーバーは、UIに(適切なUI言語で)表示される説明などで、更新のクライアント要求に応答します。
1日に1回、バックグラウンドで自動更新クライアントによってチェック更新が行われ、インストールされた更新のローカルキャッシュが更新されるため、以降のスキャンはデルタで高速になります。これらは、PCの%windir%\ softwaredistributionフォルダーに保存されます。
同様のプロセスは、以前にダウンロードしたアップデートに対しても実行されます。サービスはパッケージを再ダウンロードしません。
検索中に実際に何が起こっているかを少なくとも理解するのに役立つこの投稿を見つけました。美しく書かれています。だから私はそれをそのように投稿しています。元の投稿はこちらで見つけることができます
Windowsの更新設定を次のように変更すると、インストールの更新を確認するのにかかる時間が大幅に変化しました。 Check for updates but let me choose whether to download and install them
私の意見では、Windowsの更新を有効にして、更新をダウンロードするが自動的にはインストールしないオプションに切り替えることをお勧めします。そうすれば、チェックやバックグラウンドでのファイルのダウンロードを待たずに、インストールしたいものを入手できます。
さて、なぜ遅いのか答えましょう。Windowsの更新は、ユーザーへの顕著な影響を減らすことを念頭に置いて作成されたという事実に帰着するだけだと思います。BITSサービス(バックグラウンドインテリジェント転送サービス)を使用して、更新の確認とダウンロードを行います。
繰り返しますが、このサービスの焦点は、ユーザーを混乱させない方法で作業することです。マイクロソフトは、クライアントが毎月更新サービスのオンとオフを切り替えることを意図していないため、設計上、意図的に速度を遅くしています。
検討するのは、独自のWSUSサーバーのセットアップを取得することです。そうすれば、企業の管理者と同じように更新を拒否でき、所有するすべてのWindowsデバイスに選択した更新を適用または拒否できます。選択的に更新するという雑用を、雑用を少なくします。
Windows Updateおよび他のいくつかのWindowsシステムコンポーネントがMicrosoft JET Blueデータベースエンジンを使用しているため、処理速度が遅くなります。
他の人が述べたように、Windows Updateコード自体にもある程度の再帰があり、更新の数が増えるとパフォーマンスが低下します。
別のデータポイントを追加するだけです。最近、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向けであることに注意してください。Windows7にも同様のことが存在すると思います。
この問題が発生したため、新しくインストールしたマシンで初めてWindows Updateを夜間に実行できるようにしました。それを成功させるためのヒント:
エネルギーオプションに移動し、スタンバイ時間を「never」に設定します
自動Windowsアップデートをオンにします。検索プロセスにも時間がかかるため、デフォルトの午前03:00は問題ありません
また、「Windows更新プログラムはいくつかのコンポーネントを更新する必要があります...」プロセスを最初に実行することをお勧めします(Windows 7の場合の200を超える更新プログラムと比較して迅速に進みます)。
すべてが正しく更新されると、膨大な量のパッチ(約200)がインストールされていることがわかります。Windowsは、Windows Defenderの更新/スキャンも最適化して実行しました。
その後、残りのWindows Updateサイクル(更新の検索-インストール-再起動-更新の検索-インストール-再起動-更新の検索...#更新が0になるまで)は、はるかに高速に動作します。
私の以前の答えは良くなかったと思いますが、とにかくPCをより速く実行する方法について良いアドバイスを与えました.Windows 7の新規インストールでは、オリジナルを使用しますが、スリップストリームアップデートのインストールディスクを使用し、新規インストールの直後にインストールすると、これら2つは検索と更新のインストールの両方の速度を大幅に向上させることができます。
ハッシュではありませんが、はい、多くのことをチェックしています(一部のDLLファイルバージョンと同じくらい深い)。使用するシステムに関係なく、低速です。
解決策として、システムをオフにしておき、昼夜を問わずシステムをあまり必要としない場合は、システムの電源を入れ、強制的に更新を確認し、すべてインストールできるようにします。