Windows 10 Fall Creators Updateの後、svchost.exeインスタンスは常にCPU時間を使用しています


10

Windows 10 Fall Creators Updateをインストールしてからsvchost.exe、CPU時間の約14%を常に使用しているプロセスがあります。

CPU使用率のグラフ

このsvchost.exeインスタンスは、次の3つのサービスをホストします。

基本フィルタリングエンジン、CoreMessaging、Windows Defender Firewall

CPU時間は、Process Hackerがこれら3つのサービスのいずれにも属さない、そのプロセス内のスレッドによって消費されます。

Process Hackerのスクリーンショット

これらの3つのサービスは重要なシステムサービスと見なされているので、それらについて何もすることは困難です。これらのサービスをで停止または無効にすることはできません。services.mscプロセスを終了すると、バグチェック(CRITICAL_PROCESS_DIED)がトリガーされます。設定UIを介してWindows Defenderファイアウォールを無効にしても、CPU使用率は低下しません。

アイデアが足りません。何が原因でしょうか?これをさらにデバッグするにはどうすればよいですか?これらのサービスを停止する回避策はありますか?


更新:@HelpingHandでデバッグした後、これをWindows Defender Firewallサービスに分離しました。プロセスモニターは、常にレジストリにアクセスしていることを示しています。

プロセスモニターのスクリーンショット

そのプロセスにフィルターされたプロセスモニターキャプチャのCSVエクスポートは、こちらから入手できます

私はまだその振る舞いを止める方法を探しています。


更新2: Windowsパフォーマンスアナライザーによる分析では、ほとんどのCPU時間は次のコードによって消費されていることが示されていますrpcrt4.dll

Windows Performance Analyzerのスクリーンショット


1
管理プロンプトで次の2つのコマンドを実行して再起動すると、存在する場合、どのsvchostプロセスが高CPUを引き起こしているのか:Sc config BFE type= own次にSc config MpsSvc type= own
HelpingHand

1
プロセスハッカーを既に持っているので、たとえばBFEをホストしているsvchostプロセスを見つけた場合。[サービス]タブでサービス名をダブルクリックして[セキュリティ]タブを表示すると、管理者が構成権限を変更できると思いました。上記は私のために働きます。
HelpingHand '19年

1
たぶん、そのPIDにフィルターされたプロセスモニターを実行できます。何が現れるか見てください。
HelpingHand '19年

1
私のコンピューターでも同様です。TBH、私はあなたの最善の策はWindows Performance Toolkitツール-docs.microsoft.com/en-us/windows-hardware/test/wptをインストールすることだと思います。基本的に、Windows Performance Recorderを使用してトレースファイルをキャプチャし、Windows Performance Analyzerを使用してそれを分析します。 channel9.msdn.com/Shows/Defrag-Toolsには、これらに関する優れたショーがあります。
HelpingHand '19年

1
モジュールでソートしないでください。この列を削除します。RPCイベントもトレースします。このファイルをダウンロードし、WPRUI.exeを実行して、[プロファイルの追加]をクリックし、ダウンロードしたWPRPを選択し、[カスタム測定]で[CPU使用量プロファイル]と[ネットワーク使用量プロファイル]を選択します。開始をクリックして、30秒間の使用状況をキャプチャします。高いCPU使用率を持つPIDと、高い使用率とRPCイベントを持つexeの一般的なイベントグラフ/テーブルフィルターで、どのRPCアクションが実行されるかを確認します
magicandre1981

回答:


11

結局のところ、これはインターネット接続共有(ICS)に関連していました。

以下では、同様の問題を抱えている他の人々の助けになることを願って、この結論に至った経緯について説明します。


最初のステップは、問題の原因となっているサービスを識別することです。Windowsのタスクマネージャーも最近これを行う方法を学びましたが、サービスの構成を編集することもできるProcess Hackerを使用しました。

問題のsvchost.exeインスタンスをダブルクリックして[ サービス ]タブを選択すると、そのプロセス内で実行されているサービスが表示されます。

svchost.exe(1688)プロパティ

svchost.exeは多くのWindowsサービスを同時にホストできるため、問題の原因となっているサービスを特定することが困難です。一方で、十分なRAMが利用可能であるときに、Windows 10の最近のバージョンは、一般的なサービスを隔離、一部のサービスはまだプロセスを共有します。

これはそのような場合であり、どのサービスが問題を引き起こしているかを特定する最も簡単な方法は、それらを分離することです。

プロセスハッカーはこれを行うことができます。メインウィンドウの[ サービス ]タブで、サービスがプロセスを共有できるかどうかを構成できます。

MpsSvcプロパティ

3つの疑わしいサービスのうち少なくとも2つを独自のプロセスとして構成し、将来的に分離されるようにする必要があります。

どうやら、Windows Defenderは、ユーザーがそのサービスの構成を操作することを好まないため、この設定を正常に変更するには、

  • Administratorsグループにそのサービスへのフルアクセスを付与します。
  • サービスを無効にし、
  • 再起動してサービスを停止します(個別に停止することはできません)。
  • サービスタイプを[ Own Process]に変更し、サービスを再度有効にします(自動開始に設定します)。
  • 最後にもう一度リブートして、これらの変更を適用します。

その後、違反svchost.exeは単一のサービスのみをホストするため、容疑者がいます:

Windows Defenderファイアウォール(MpsSvc)

ファイアウォールサービスの内部を分析するために、Windows ADKの一部であるWindows Performance RecorderおよびWindows Performance Analyzerツールを使用します。

データを記録することから始めます。容疑者svchost.exeがバックグラウンドで動いている間に、このファイルをダウンロードし、プロファイルとして追加し、次のようにWindows Performance Recorderを設定して、録音を開始します。

Windowsパフォーマンスレコーダー:第1レベルのトリアージとCPU使用率プロファイルを確認する

記録を30秒ほど実行してから、記録を保存します。保存後、[ WPAで開く ]をクリックして、すぐに分析のために開きます。

これは、物事がトリッキーになるところです。私の場合、システムアクティビティ一般的なイベントの下の正しい場所を見るには、@ magicandre1981からのヒントが必要でした。そこでは、RPCイベントの数が疑わしいほど高く見えました。

46.918 Microsoft-Windows-RPCイベント

ドリルダウンすると、Windows Defender Firewall svchost.exeサーバーwin:Startwin:Stopイベントで多く表示されていました。

RpcServerCall

次のステップは、これらのRPC呼び出しを送信したユーザーを見つけることでした。クライアント側を見ると、別のsvchost.exeインスタンスが疑わしく見えていました。

RpcClientCall

実際、Process Hackerは、そのプロセス内で実行されているサービスを検出できませんでした。これも、一貫してCPU負荷を引き起こしていました。

サービスグル​​ープ名:netsvcs

この場合、Windowsのタスクマネージャはサービスの識別に成功しました。

インターネット接続の共有(ICS)

実際、サービスは開始状態のままになっています。必要ないので無効にし、次回の再起動後にCPU負荷が通常に戻った。


コメントで助けてくれた@HelpingHandと@ magicandre1981に感謝します。


後でTenForumsの投稿で発見されたように、Windows Defender Firewallをリセットすると、この問題が修正されます。


@HelpingHand:Internet Connection Sharing (ICS)サービスを無効にするとどうなりますか?WiFiホットスポットはオプションではなくなりますか?
llinfeng 2017年

これは、Process Explorer内で少し簡単です。一定のプロセッサ量を使用している「svchost.exe」(私の場合は5%一定)を右クリックして「サービス」タブをクリックすると、このsvchostの下で実行されているサービスが表示されます。この場合、私はICSしかありませんでした。同様に、インターネット接続の共有が開始状態でスタックしました。[ファイアウォールとネットワーク保護]に移動すると、[ファイアウォールをデフォルトに戻す]をクリックできました。これにより、問題が即座に修正されました。
ハワードリンスIII

@ハワード:幸運だと思ってください。私にとって市長の複雑さの1つは、の問題のあるインスタンスを共有する3つのサービスでありsvchost.exe、これを引き起こしているサービスを特定することが困難でした。なぜインスタンスでホストプロセスを共有しなかったのかわかりません。
fefrei

2

それはもっと簡単です、私はこの手順を使用してWindowsファイアウォールの設定をリセットすることで成功しました(特にCPU負荷に関連するスパイクがある場合):-

Windows Defenderファイアウォールをデフォルト設定にリセットすると、問題が解決しました。

これを行うには、[設定]-> [更新とセキュリティ]-> [Windows Defender]-> [Windows Defenderセキュリティセンター]-> [ファイアウォールとネットワーク保護]-> [ファイアウォールのデフォルト設定を復元]を開きます。

これが他の誰かに役立ち、うまくいくことを願っています...かなり広範囲にわたる問題のようです。


1
確かに、これも私にとってはうまくいきました。私の答えの一番下で述べたとおりです。ここで手順をミラーリングしていただきありがとうございます。
fefrei 2018年

0

私の場合、失敗したさまざまな修正(Windowsファイアウォールのリセットなど、上記の提案のいくつかを含む)を試みた後、「診断ポリシーサービス」を無効にして、CPUの負荷をやめました。これは理想的なソリューションではないかもしれませんが、重要なサービスではないようです。これを無効にする方法は次のとおりです。

  1. 管理者として「システム構成」(「msconfig.exe」)を開きます
  2. [全般]タブ:[選択的なスタートアップ]を選択します
  3. [サービス]タブ:[診断ポリシーサービス]をオフにします
  4. Windowsを再起動します。

この解決策を教えてくれたRanga Rajesh KumarのYouTubeチャンネルに感謝します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.