Windowsエラー
 Computer >> コンピューター >  >> トラブルシューティング >> Windowsエラー

【解決法】サービス ホスト:ローカル システム(ネットワーク制限あり)の高CPU使用率を直す7つの方法

多くのWindowsユーザーが、「サービス ホスト:ローカル システム(ネットワーク制限あり)」というプロセスがCPUやディスクの最大95%を占有してしまう問題に悩まされてきました。この問題はWindows 8の時代に初めて確認され、Windows 10でも依然として発生し続けています。影響を受けたユーザーの報告によると、このプロセスはCPUの最大95%と、HDDの読み書き能力の最大72MB/sを消費することもあるといいます。これは決して無視できる数字ではありません。

しかし、サービス ホスト:ローカル システム(ネットワーク制限あり)という名前自体が非常に曖昧です。これは特定の単一サービスではなく、多数のWindowsシステムサービスが動作する際の総称のようなものであり、その中のどのサービスが異常なCPU・ディスク使用率の原因になっているかは一概には言えません。さらに厄介なことに、非ページプール領域のメモリリークが原因となるケースもあります。幸い、これまでの多くの調査により、最も一般的な原因はSuperfetch(SysMain)というWindowsシステムサービスであることが判明しています。Microsoftによれば、このサービスはコンピューターのパフォーマンスを維持・向上させることを目的としていますが、実際にはトラブルの種になりがちです。Superfetchが原因でない場合は、非ページプールのメモリリークが原因である可能性が高いです。

対処方法に進む前に、まずシステムのファイアウォールが重要なサービスやアプリケーションをブロックしていないか確認してください。また、Windows Updateが原因を作っていないかを調べるため、一時的に無効化して様子を見るのも有効です。

事前準備:破損したシステムファイルの修復

以下の対処法を実行する前に、Restoroなどの修復ツールを使って破損・欠落しているシステムファイルのスキャンと復元を行っておきましょう。すべてのシステムファイルが完全で破損していない状態であることが、スムーズなトラブル解決には不可欠です。

方法1:Superfetchサービスとバックグラウンドインテリジェント転送サービス(BITS)を無効化する

Superfetchとバックグラウンドインテリジェント転送サービス(BITS)は、アプリケーションの起動高速化やバックグラウンドで動作する各種サービスの管理において重要な役割を担っています。複数のモジュールを並行して管理し、効率的にスケジューリングする仕組みですが、不具合や同期エラーが起こると高CPU使用率の原因になることがあります。これらを無効化することで問題が解決する場合があります。

  1. Windowsキー + R を押して「ファイル名を指定して実行」を開きます。
  2. services.msc と入力し、Enter キーを押します。
  3. サービスの一覧を下へスクロールし、Superfetch(環境によってはSysMain)を探します。
  4. Superfetch をダブルクリックして設定画面を開きます。
  5. 停止ボタンをクリックしてサービスを停止します。
  6. スタートアップの種類を無効に変更します。
  7. 適用をクリックし、続いてOKをクリックします。
  8. 次にBackground Intelligent Transfer Serviceを探してダブルクリックします。
  9. 停止ボタンをクリックしてサービスを停止します。
  10. スタートアップの種類を無効に設定します。
  11. 適用OKの順にクリックして変更を確定します。
  12. パソコンを再起動し、問題が解消されたかどうかを確認します。

方法2:非ページプールのメモリリークを修復する

方法1で改善しない場合は、次の方法を試しましょう。レジストリを編集してNduサービスを無効化することで、非ページプールのメモリリークを塞ぐことができます。

  1. Windowsキー + R を押して「ファイル名を指定して実行」を開きます。
  2. 「Regedit」と入力して Enter キーを押します。
  3. レジストリエディターの左ペインで、以下の階層へ移動します:
    HKEY_LOCAL_MACHINE > SYSTEM > ControlSet001
  4. 左ペインのServicesをクリックし、一覧の中から「Ndu」を選択します。
  5. 右ペインにある「Start」という値をダブルクリックして編集します。
  6. 値のデータを4に変更します。これによりNduサービスが無効化され、非ページプールのメモリリークが解消されます。
  7. OKをクリックします。
  8. レジストリエディターを閉じます。
  9. パソコンを再起動します。起動後、「サービス ホスト:ローカル システム(ネットワーク制限あり)」がCPUやディスクを大量消費しなくなっているはずです。

方法3:システムファイルチェッカー(SFC)を実行する

システムファイルチェッカー(SFC)はWindowsに標準搭載されたツールで、インターネットから必要なファイルの情報を取得し、PC内のファイルと照合します。不一致が見つかった場合は自動的に最新版をダウンロードして置き換えます。システムファイルに問題がある場合、SFCの実行によって高CPU使用率が解決することがあります。

  1. スタートメニューを開いて「cmd」と入力します。コマンドプロンプトのアイコンを右クリックし、「管理者として実行」を選択します。
  2. 表示されたUAC(ユーザーアカウント制御)のダイアログで「はい」を選択します。
  3. コマンドプロンプトに「sfc /scannow」と入力してEnterキーを押します。
  4. スキャンと修復が完了するまで待ちます。成功すれば「Windowsリソース保護は破損したファイルを検出し、それらを正常に修復しました」というメッセージが表示されます。詳細は以下の場所のCBS.logに記録されています。
    %WinDir%\Logs\CBS\CBS.log
  5. 続けて以下のコマンドを入力して実行します。
    dism /Online /Cleanup-Image /RestoreHealth
  6. コマンドの実行完了後、CPUとメモリの使用率を監視し、問題が残っていないか確認します。

方法4:SVChostプロセスを終了させる

タスクマネージャーでService Host(SVChost)プロセスを強制終了すると、この問題が解決するケースがあります。その後、従量制課金でないWi-Fi接続などを使って保留中の更新プログラムをダウンロードしてみてください。

  1. Ctrl + Shift + Escを押してタスクマネージャーを起動します。タスクバーを右クリックして「タスクマネージャー」を選択しても構いません。
  2. 詳細」をクリックして表示を展開し、実行中のすべてのプロセスを表示させます。
  3. プロセス一覧から「サービス ホスト:ローカル システム」を探します。このプロセスはWindows UpdateやUpdate Orchestrator Serviceをホストしています。該当タスクを選択して「タスクの終了」をクリックします。
  4. 確認ダイアログが表示されたら、「保存されていないデータを破棄してシャットダウンする」にチェックを入れ、「シャットダウン」をクリックします。
  5. CPU使用率を監視し、問題が解決したか確認します。

5. クリーンブートを実行する

サードパーティ製のアプリケーションやサービスが高CPU使用率の原因になっていることもあります。そこでこの手順では、起動時に不要なサービスとアプリケーションをすべて無効化する「クリーンブート」を行い、原因となっているアプリやドライバーを特定します。特に以下のアプリケーションがこの問題を引き起こすことで知られています。

  • 仮想ディスク系アプリ(Virtual Disc App)
  • Dragon Naturally Speaking
  • MST Command Center
  • VPN系Chrome拡張機能
  • HP関連のプロセス(特にHP Help)

クリーンブートの手順は以下の通りです:

  1. 管理者アカウントでパソコンにログインします。
  2. Windowsキー + R」を押して「ファイル名を指定して実行」を開きます。
  3. msconfig」と入力して「Enter」キーを押します。
  4. サービス」タブを開き、「すべてのMicrosoftサービスを隠す」にチェックを入れます。
  5. すべて無効」をクリックし、「OK」をクリックします。
  6. スタートアップ」タブを開き、「タスクマネージャーを開く」をクリックします。
  7. タスクマネージャーの「スタートアップ」タブを開きます。
  8. 一覧の中で「有効」と表示されているアプリケーションを選択し、「無効化」をクリックします。
  9. これをすべてのアプリケーションに対して繰り返し、パソコンを再起動します。
  10. これでパソコンは「クリーンブート」状態で起動されました。
  11. 問題が解消されたかどうかを確認します。
  12. エラーが再現しなくなった場合は、サービスを1つずつ有効化していき、どのサービスを有効にしたときにエラーが再発するかを特定します。
  13. 原因のサービスを再インストールするか、無効のまま運用してください。

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

Windows Updateは「配信の最適化」という機能を使って処理を高速化していますが、この機能がフリーズ状態になるとService Hostによる高CPU使用率を引き起こすことがあります。その場合は配信の最適化をオフにすることで問題が解決する可能性があります。更新の速度や最適化に多少の影響が出ますが、高CPU使用率を取り除くためには十分に価値のあるトレードオフです。

  1. Windowsボタンをクリックし、「Windows Update」と検索します。結果の一覧から「Windows Updateの設定」をクリックします。
  2. 詳細オプション」をクリックします。
  3. 配信の最適化」をクリックします。
  4. 他のPCからのダウンロードを許可する」のスイッチをオフにします。
  5. システムを再起動し、問題が解決したか確認します。

7. Windows Update関連サービスを再起動する

上記の方法で改善しない場合、Windows Updateが途中で停止してしまい、CPUやディスク使用率が急上昇している可能性があります。以下の手順を試してください。

  1. コマンドプロンプトを検索し、「管理者として実行」をクリックします。
  2. 以下のコマンドを順番に1行ずつ入力して実行します:
    net stop bits
    net stop wuauserv
    net stop appidsvc
    net stop cryptsvc
    ren %systemroot%\SoftwareDistribution SoftwareDistribution.bak
    ren %systemroot%\system32\catroot2 catroot2.bak
    net start wuauserv
    net start bits
    net start appidsvc
    net start cryptsvc
  3. 使用率が安定したかどうかを確認します。

ここまでの方法をすべて試しても改善しない場合は、chkdskコマンドを実行してハードドライブ自体の問題をチェック・修復してみてください。

  1. 【解決】Svchost.exe(サービスホスト)のCPU使用率が高い原因と直し方

    タスクマネージャーを開いたら、Svchost.exeがCPU使用率を大量に消費していた――そんな経験はありませんか?そもそも「サービスホスト(Service Host)」とは何なのか?と疑問に思う方も多いはずです。Svchost.exe(サービスホスト)は、Microsoftが提供するWindows OSの正規プロセスであり、Windowsの重要なサービスを動作させる上で欠かせない役割を担っています。最近では、タスクマネージャーを開くとSvchost.exeがCPUやRAMを90%以上も占有しているという報告が多く寄せられています。まず安心してほしいのは、この問題で困っているのはあなただけでは

  2. 【解決済み】Windows 10で「サービスホスト:ローカルシステム」のCPU使用率が高いときの対処法

    最近のWindows Updateを適用した後、ノートパソコンの動きが極端に遅くなったり、フリーズしたりしていませんか?タスクマネージャーを確認すると、「サービスホスト:ローカルシステム(Service Host: Local System)」というプロセスがCPUやメモリ、ディスクを大量に消費しているケースがあります。この記事では、サービスホストプロセスとは何か、なぜWindows 10でCPU・ディスク・メモリ使用率が高くなるのか、そしてその解決方法を詳しく解説します。 サービスホスト:ローカルシステムとは? サービスホスト(Svchost.exe)は、Windowsが動作するために必要