Windows 7
 Computer >> コンピューター >  >> システム >> Windows 7

Svchost.exe(wuauserv)によるCPU使用率の高騰とメモリリーク問題の解決方法

wuauservサービスは、Windows UpdateまたはローカルのWSUSサーバーからセキュリティパッチや更新プログラムをスキャン・検索・ダウンロード・インストールするための、標準的なWindows Updateサービスです。しかし場合によっては、wuauservサービスが正常に動作せず、CPUとRAMの使用量が異常に高くなることがあります。wuauservはsvchost.exeというコンテナプロセス内で実行されているため、ユーザーから見るとsvchostプロセスがRAMとCPUリソースを大量に消費しているように表示されます。本記事では、Windows 7およびWindows 10においてwuauservプロセスによるメモリとCPUの過剰使用を解決する方法を詳しく解説します。

  • Windows 7でwuauservサービスがCPUとメモリを最大50%消費する問題
  • Windows 10でのwuauservによる高いCPU・メモリ使用率

Windows 7でwuauservサービスがCPUとメモリを最大50%消費する問題

Windows 7環境の一部のユーザーから、パソコンの動作が著しく遅くなるという不満が寄せられ始めました。症状としては、毎日ほぼ同じ時刻に(ユーザーごとに時刻は異なります)、コンピュータの動作が突然重くなります。タスクマネージャーを確認すると、svchost.exeプロセスが最大1.2〜2GBのメモリと、1コアあたり最大100%のCPUを使用しています。その結果、30〜60分間はコンピュータを快適に操作できず、極端に動作が遅く、頻繁にフリーズしてしまいます。

この問題は、ローカルのSCCMサーバー(クライアント側のMicrosoft更新プログラム管理に使用)から更新プログラムを受信しているWindows 7 SP1 x86およびx64クライアントで発生しました。クライアントでタスクマネージャーを起動し、「プロセス」タブで実行中のプロセスをメモリまたはCPU使用率順に並べ替えると、該当するsvchost.exeプロセスがCPU 11%、メモリ1.2GBを消費していることが確認できます。実際には、svchost.exeはコンテナプロセスであり、複数のプログラムやシステムサービスのスレッドがその内部で動作しています。タスクマネージャーだけでは、どのスレッド(サービス)がシステムに高負荷をかけているのかを特定できません。

Svchost.exe(wuauserv)によるCPU使用率の高騰とメモリリーク問題の解決方法

プロセスとそのスレッドに関するより詳細な情報は、Process Explorerユーティリティを使用することで取得できます。

procexp.exeを起動し、メモリやCPUを過剰に消費している問題のsvchost.exeプロセスを見つけます。

Svchost.exe(wuauserv)によるCPU使用率の高騰とメモリリーク問題の解決方法

プロセスのプロパティを開き、「Threads」タブに切り替えます。ここでは、svchost.exeプロセス内でwuauserv(Windows Update)スレッドがCPUとメモリの大部分を消費していることが明確に確認できます(wuauservサービスはシステムと更新サーバーのスキャンを行っています)。何らかのコード上の問題により、wuauservはメモリリークを起こし始め、利用可能なメモリを最大1.5〜2GB(プロセスで利用可能な上限サイズ)まで消費し、ページファイルを積極的に使用するようになります。その結果、システム全体の動作が極端に遅くなります。

興味深いことに、この問題はRAM 2GB搭載のクライアントでより頻繁に発生します。4GB以上のメモリを搭載したPCでは、wuauservのメモリリークが2GBを超えないため、問題はそれほど顕著に現れません。

services.mscコンソールからwuauservを停止すると、WindowsのメモリとCPUの負荷は劇的に低下し、svchost.exeのメモリ使用量は180〜200MB程度まで下がります。

重要: これはwuauservを停止したまま無効化しておいてよいという意味ではありません。無効化するとシステムはセキュリティ更新プログラムを受け取れなくなり、ハッカー攻撃のリスクにさらされます。

Svchost.exe(wuauserv)によるCPU使用率の高騰とメモリリーク問題の解決方法

まず最初に、「Windows Updateエージェントの構成をリセットする方法」の記事の手順に従い、Windows Updateエージェントの設定をリセットしてみました。問題は一時的に解決され数日間は再発しませんでしたが、その後再び発生しました。どうやらローカルキャッシュと更新データベースのサイズがある限界に達すると、wuauservが再び大量のメモリを使用(リーク)し始めるようです。

その他にも多くの対策を試しましたが、実際に効果があったのは、Windows Updateエージェント向けの以下のパッチのインストールだけでした:

  • https://support.microsoft.com/en-us/kb/3050265(2015年6月公開のWindows Updateエージェント更新プログラム)
  • https://support.microsoft.com/en-us/kb/3065987(2015年7月公開のWindows Updateエージェント更新プログラム)
  • https://support.microsoft.com/en-us/kb/3102810(WSUS経由で更新プログラムをインストールする際のCPU・メモリ負荷の高さの問題を解決するWindows 7/2008 R2用パッチ、2015年11月公開)

ヒント: パッチはWindows 7の全コンピュータに適用したわけではなく、同様の問題が報告されたコンピュータのみにインストールしました。

更新プログラムの適用後、wuauservプロセスのメモリ使用量は200MBまで減少し、更新プログラムのスキャンにかかる時間も大幅に短縮されました。

Windows 10でのwuauservによる高いCPU・メモリ使用率

Windows Updateサービスがプロセッサに高負荷をかけ、大量のメモリを消費するという問題は、さまざまなWindows 10ビルドでも発生します。
タスクマネージャーを開き、メモリやCPUリソースを過剰に消費しているsvchost.exeプロセスを見つけます。右クリックして「サービスへ移動」を選択します。

Svchost.exe(wuauserv)によるCPU使用率の高騰とメモリリーク問題の解決方法

wuauservサービス(Windows Updateサービス)がこのsvchost.exeプロセスの一部として実行されていることを確認してください。

Svchost.exe(wuauserv)によるCPU使用率の高騰とメモリリーク問題の解決方法

タスクマネージャーでは、svchostプロセス内で実行されているどのシステムサービスがコンピュータに高負荷をかけているのかを特定できないため、Process Explorerを使用する必要があります(手順は前述の通りです)。CPUやメモリの高負荷がwuauservサービスによって引き起こされていることを確認してください(この例ではC:\WINDOWS\system32\wuaueng.dllライブラリが該当します)。

Svchost.exe(wuauserv)によるCPU使用率の高騰とメモリリーク問題の解決方法

Windows 7の更新サービスのメモリリークのケースとは異なり、Windows 10の問題を一括で修正できる汎用的なパッチは存在しません。以下に、Windows UpdateサービスによるメモリとCPUの使用量を抑えるために実施すべき基本的な対処手順を紹介します。

Windows Updateの完了を待つ

Windows Updateサービスが現在コンピュータをスキャン中、または更新プログラムをインストール中である場合、一時的な高負荷は自然な挙動です。コンピュータの性能にもよりますが、1〜2時間ほど待ち、wuauservが更新プログラムのダウンロードとインストールを完了するのを待ちましょう。

Windows Updateのトラブルシューティングツールを実行する

内蔵のWindows Updateトラブルシューティングツールを使って、Windows Updateサービスを診断してみてください。「設定」→「更新とセキュリティ」→「トラブルシューティング」に移動し、「Windows Update」(Windowsの更新を妨げる問題を解決する)→「トラブルシューティングツールの実行」を選択します。

Svchost.exe(wuauserv)によるCPU使用率の高騰とメモリリーク問題の解決方法

ツールがサービスの状態を確認し、検出された問題の自動修復を試みます。

Svchost.exe(wuauserv)によるCPU使用率の高騰とメモリリーク問題の解決方法

SoftwareDistributionフォルダとcatroot2フォルダをクリアする

SoftwareDistributionフォルダとcatroot2フォルダをリセットしてみてください。

  • C:\Windows\SoftwareDistributionフォルダには、Windows Updateサービスの一時ファイルとダウンロード済みの更新ファイルが保存されています。
  • %windir%\System32\catroot2フォルダには、更新パッケージの署名情報が保存されています。

次のスクリプトでこれらのフォルダをクリアしてみましょう(コードを*.bat拡張子のテキストファイルに保存し、管理者として実行します):

attrib -h -r -s %windir%\system32\catroot2
attrib -h -r -s %windir%\system32\catroot2\*.*
net stop wuauserv
net stop CryptSvc
net stop BITS
ren %windir%\system32\catroot2 catroot2.old
ren %windir%\SoftwareDistribution SoftwareDistribution.old
ren "%ALLUSERSPROFILE%\application data\Microsoft\Network\downloader" downloader.old
net Start BITS
net start CryptSvc
net start wuauserv

Windowsシステムファイルとコンポーネントストアを確認・修復する

次のコマンドでWindowsイメージのシステムファイルを確認・修復します:

sfc /scannow
および
DISM /Online /Cleanup-Image /RestoreHealth

Svchost.exe(wuauserv)によるCPU使用率の高騰とメモリリーク問題の解決方法

ウイルス感染をチェックする

レスキューディスク(Kaspersky Rescue DiskやAvira Rescue Systemなど)を使用して、オフラインモードでWindowsのウイルスチェックを実施しましょう。マルウェアがシステムリソースを不正に消費しているケースも少なくありません。

Windows 10を最新版に更新する

  1. 現在のビルドをインストールして、Windows 10のバージョンを最新に更新します。
  2. Microsoft Update Catalog(https://www.catalog.update.microsoft.com/Home.aspx)から、お使いのWindowsバージョン向けの最新の累積更新プログラムを手動でダウンロードしてインストールします(Microsoftは毎月バグや各種エラーを修正し、その修正内容を累積更新パッケージに反映しています)。

Windows Updateの配信の最適化を無効にする

「設定」→「更新とセキュリティ」→「Windows Update」→「詳細オプション」→「配信の最適化」に移動します。「他のPCからのダウンロードを許可する」オプションを無効にし、デバイスを再起動してください。

Svchost.exe(wuauserv)によるCPU使用率の高騰とメモリリーク問題の解決方法

最新のWindows更新プログラムをアンインストールする

wuauservサービスによるCPU・メモリ使用率の高騰が、新しいWindows更新プログラムのインストール直後に発生した場合は、その更新プログラムを1つずつアンインストールしてみてください(コントロールパネル→プログラムと機能→インストールされた更新プログラムを表示)。更新プログラムをインストール日順に並べ替え、該当する更新プログラムを右クリックして「アンインストール」を選択します。

Svchost.exe(wuauserv)によるCPU使用率の高騰とメモリリーク問題の解決方法

Windows Updateサービスを無効にする

Windows Updateサービスを無効にすることは決してお勧めしません。セキュリティ更新プログラムを受け取れなくなり、ハッキングやマルウェア感染のリスクにさらされるからです。更新サービスの無効化は、他のあらゆる方法でシステムの正常な動作を回復できない場合の、あくまで一時的な措置としてのみ使用すべきです。

サービス管理コンソール(services.msc)を開き、Windows Updateサービスを見つけて停止し、スタートアップの種類を「無効」に変更します。変更を保存してコンピュータを再起動します。

Svchost.exe(wuauserv)によるCPU使用率の高騰とメモリリーク問題の解決方法

翌月の第2火曜日(Patch Tuesday)には、必ずお使いのWindows 10ビルド向けの新しい累積更新プログラムを手動でダウンロードしてインストールし、wuauservサービスを再度有効にしてください。新しい更新プログラムによって問題が解決される可能性があります。

  1. Svchost.exeとは?svchost.exe(netsvcs)によるCPU・メモリ使用率の高騰を解決する方法

    多くのWindowsユーザーから、「svchost.exe(netsvcs)がCPU使用率を異常に占有する」という不審で深刻な問題の報告が寄せられています。この問題が発生すると、パソコンが正常に起動しなくなったり、場合によってはプログラムが一切実行できなくなることもあります。 あなたもnetsvcsによるメモリ使用量の高騰にお困りなら、ぜひこの記事を最後までお読みください。svchostが引き起こすCPU使用率の高騰やメモリリークを解決するための詳細な手順をご紹介します。 その前に、まずはsvchost.exeについての基本情報を確認しておきましょう。 Service Host(svchost

  2. Windows 11でWifitask.exeのCPU使用率が高くなる問題を解決する5つの方法

    タスクマネージャーを開いたら、見慣れない「Wifitask.exe」というプロセスがCPUリソースを100%近く消費していた――そんな経験はありませんか?このプロセスが原因で、Windows PCの動作が極端に遅くなっている場合、適切な対処が必要です。 Wifitask.exeによる高いCPU使用率は、システムのクラッシュ、動作の遅延、フリーズなど、Windows 11上でさまざまなパフォーマンス低下を引き起こします。原因を取り除くことで、PCのパフォーマンスは40〜60%程度改善するとも言われています。 本記事では、Windows 11でWifitask.exeの高CPU使用率を解消する具体