Windows 10で数ヶ月前から常時CPU使用率が20%程度となり始めた。タスクマネージャでプロセスを確認したところ、svchost.exe (LocalServiceNoNetwork, netsvcs)であることを特定した。Microsoftのサポートコミュニティ等の情報を元に対策をしたところ、CPU負荷がなくなり正常状態になったので、確認ポイント、修正方法を記載する。
※私の環境でしか確認できていないため、各種変更は自己責任でお願いします。
環境
HP Pavilion, Core i3 RAM 3GB, Windows 10 HOME (Windows 7からバージョンアップ)
原因プロセス
事象発生中のタスクマネージャーの状態を取得し忘れたが、CPU使用率が常時高かったプロセスは以下の二つ。(カラム右クリックでコマンドラインを表示している)
サービスホスト: ローカルサービス (ネットワークなし)
C:¥WINDOWS¥system32¥svchost.exe -k LocalServiceNoNetwork -p
異常時 CPU使用率 約15%
サービスホスト: ローカルシステム
C:¥WINDOWS¥system32¥svchost.exe -k netsvcs -p
異常時 CPU使用率 約5%
- 異常サービス調査
- Microsoft Windowsサポートコミュニティの情報
- Windows Firewall の設定をデフォルトに戻す
- Firewall設定変更後の状態確認
- まとめ - Win10 svchost.exe (LocalServiceNoNetwork, netsvcs) のCPU負荷対策
異常サービス調査
各プロセスのいずれかのサービスが異常となっていると推測し、サービス管理画面からサービスの一覧を確認した。サービス管理画面はタスクマネージャのプロセス右クリックから遷移できる。
一覧を確認したところ、Internet Connection Sharing (ICS)のサービスが開始中のままになっていることが分かった。
プロパティを確認したところ、SharedAccess, Internet Connection Sharing (ICS) サービスの実行ファイルパスが、C:¥WINDOWS¥system32¥svchost.exe -k netsvcs -p
と、異常プロセスの一つであることが分かった。
サービスの状態は開始中のままで停止はできない。
Microsoft Windowsサポートコミュニティの情報
完全に一致するわけではないが、LocalServiceNoNetwork関連のコミュニティディスカッションがある。
こちらの解決策として提示されているのは、Windows Defender Firewallを既定値(デフォルト)に戻すこと。
Windows Firewall の設定をデフォルトに戻す
詳細な関連は不明だが、CPU負荷が高騰しているプロセスの中にWindows Defender Firewallのサービスも含まれているため、試行してみる。
設定 > Windows Defender > Windows Defender セキュリティ センターを開きます
ファイアウォールとネットワーク保護 > ファイアウォールを既定値に復元する
Firewall設定変更後の状態確認
再度SharedAccessサービスの状態を確認すると、以下の通り、正常に「停止」になっている。(設定変更後に再起動が必要だったかも)
これにより、CPU負荷が軽減され、平常時はCPU使用率0%〜数%となった。
まとめ - Win10 svchost.exe (LocalServiceNoNetwork, netsvcs) のCPU負荷対策
svchost.exe(LocalServiceNoNetwork, netsvcs) のCPU負荷はSharedAccess, Internet Connection Sharing (ICS) サービスが原因で、Windows Defender Firewallの設定値をデフォルトに戻すことでCPU負荷高騰を解消できた。