web-dev-qa-db-ja.com

svchostがメモリを消費している

私はWindows7を実行しています。svchostが大量のメモリを消費しているようです。

特定のsvchostインスタンスのユーザー名は「ネットワークサービス」です。説明は「Windowsサービスのホストプロセス」です。

CPU使用率の50%を消費することがあります。それ以外の場合は、5%弱です。 50%なのかそうでないのかわかりません。しかし、それは頻繁に変動します-起動したばかりでプログラムが開始されていない場合でも。

これを診断するにはどうすればよいですか?

7
Jeremy Detrempe

SVCホストは、マシンで実行されている多くのサービスで構成されています。それを右クリックして[サービスの表示]を選択し、実際に原因を確認することをお勧めします(すべてのユーザーからプロセスの表示を選択した後)。

alt text

Microsoft/Sysinternals Process Explorer を使用することもできます。これにより、何が起こっているかがより詳細に表示されます。

alt text

(Process Explorerのsvchost.exeプロセスにマウスを合わせる)

7
William Hilsum

問題は、複数のサービスが1つのプロセスを共有することです(非常にばかげた設計)。この共有は、そのうちの1つが大量のメモリを使用している場合、それを簡単に識別できないことを意味します。さらに悪いことに、それらの1つがクラッシュすると、すべてがダウンします。同様に、肥大化した混乱を殺したい場合、その中に含まれているすべてのサービスは死にます。

そこにはがありますタスクマネージャーのそのプロセスのサービスのリストを使ってできることは、憤慨するだけでなく、それらを独自のsvchost.exeプロセスに分離して、調査を続行できます。 svchost.exeが大量のメモリを使用し、サービスが1つしかない場合は、それが原因です。

まず、Windows Updateのように、 svchost.exe bloatを引き起こすことが知られている の原因を特定することから始めます。

最近あります この問題に役立つ可能性のあるWindows Updateの修正 。 KB3050265など、 "...スキャン中にシステムパフォーマンスが低下する可能性がある問題に対処します。この問題は、物理メモリの量が少ないコンピュータに最も大きな影響を及ぼします。"

試してみたい場合は、サービスの分離を扱うスーパーユーザーの質問があります: " ホストされたサービス(svchost.exe)を独自のプロセスで分離します "。

これは、Windows Update Serviceが独自のプロセスに分離されているシステムで発生している問題のスクリーンショットであり、それが原因であることを確認しています。

Windows Update service being a pig

Service view of Windows Update service being a pig

これは、KB3050265パッチが適用された後の、同じシステム上のタスクマネージャウィンドウのキャプチャです。現在の典型的な動作は、更新サービスが約300メガバイトのフットプリント(以前よりもはるかに小さい)で上限を設定し、プロセッサを100%拘束することです。理想的ではありませんが、システムの応答性への影響は大幅に軽減されます。数分後に終了し、消えます: Windows Update service: less of a pig now

1
Kaz

Sysinternals Process Explorerの横に、svchostが実行していることを分析するための素晴らしいオープンソースユーティリティがあります。 svchostビューア

svchost viewer screenshot

0
gus27