svchost.exe -k netsvcsが1GB以上のメモリを使用


8

私の運用サーバー "svchost.exe -k netsvcs"が1GBを超えるRAMメモリを着実に使用していることに気付きましたが、これは少し過剰だと思います。

これは、tasklist / svcがこのプロセスに対して私に与えるものです:

                               Appinfo, CertPropSvc, gpsvc, IKEEXT,
                               iphlpsvc, LanmanServer, ProfSvc, Schedule,
                               SENS, SessionEnv, ShellHWDetection,
                               Winmgmt, wuauserv

このメモリリークの原因となっているプロセスと、それを修正する方法を考えていました。過去にこれと同じ行動をした人はいますか?

サーバーはWindows Server 2008 R2(ビルド7601:Service Pack 1)を実行しており、主な機能は社内のアプリケーションプロセッサワーカーを実行することです。


SP1をインストールしましたが、それについて話しました... support.microsoft.com/kb/977357 get-hotfix -id KB977357 get-hotfix:要求された修正プログラムが「localhost」コンピューターで見つかりません。SP1をインストールしている場合、この修正プログラムをインストールすべきではありませんか?
agentsvr

1
Service Packはホットフィックスを一緒にロールアップするため、リストに表示されません。
Nathan C 14

4
OK。さて、次のステップは、どのサービスがメモリを消費しているかを調べることであり、それを行う唯一の方法は、を使用して一度に1つずつ独自のsvchost.exeプロセスに分割することSC Config Servicename Type= ownです。serverfault.com/questions/12278/…を
Ryan Ries

プロセスが正当なsvchost.exeであることを確認しますか?
Konrad Gajewski、2015年

また、サービスを1つずつ停止/強制終了して、メモリ使用量が低下するタイミングを確認することもできます。
ssnobody 2015

回答:


1

問題は、それはリークですか?あなたはメモリ使用量が「安定している」と言っています。

リーク=メモリ使用量は時間の経過とともに増加し、減少することはないため、時々サーバーをリロードする必要があります。

タックが約1 GBに長時間(たとえば2週間)留まる場合、状況は完全に正常です。現代のソフトウェアは、必要なときにいつでも空きメモリを使用するように作られています。メモリ割り当ての時間を節約するために、あらゆるものを取得するプログラムがいくつかあります。

システムの動作を妨げない場合は、触れないでください。


1

メモリの割り当ては、既存の割り当てられたメモリを再利用する場合と比較して、CPUサイクルで非常にコストがかかります。プログラムがいったん開始すると、その機能が終了するまで、このメモリが「解放」されないことがよくあります。

たとえば、Firefoxはしばらくの間メモリを保持します。Firefoxを開いた状態で1週間コンピュータの電源を入れたままにすると、メモリサイズが常に増加することに気づくでしょう。YouTubing、Google Playミュージック、およびブラウジングの後、私のメモリは2〜4 GBになりました。プロセスを再起動すると、メモリは300 MBに縮小されます。これはキャッシング機能が原因であり、この動作は仕様によるものです。

私は、SVCHostプロセスが本来どおりに動作していると信じがちです。サーバーはいくつのサービスを実行していますか?1GBについては聞こえません。ただし、実行しているサービスによって異なります。


1

次のステップとして、さらに調査したい場合は、Microsoftサイトで見つけることができるプロセスエクスプローラー(procexp.exe)をインストールします。これにより、どのサービスがこのプロセスを使用するかがわかります(procexpのスクリーンショットを参照)。サービスを停止/開始して、特定のサービスが大量のメモリ割り当ての解放/取得に関連付けられているかどうかを確認できます。また、ワーキングセットまたはプライベート(=主にヒープ)に割り当てられたメモリかどうかもわかります。特定のサービスに関連付けられている場合は、さらに調査するためのより明確なパスがあります。

言うまでもなく、このテストは、合意された停止/保守ウィンドウで行うか、通常の操作を中断するため、テストサーバーで再現する必要があります。テストが完了したら、サービスを再起動してチェックリストを通常の実行セットに戻します。

スクリーンショット: http://i.imgur.com/20Ij6Mi.png

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