svchost.exe -k netsvcs占用> 1GB内存


8

我注意到我的生产服务器“ svchost.exe -k netsvcs”稳定地占用了超过1GB的ram内存,我认为这有点多余。

这是任务列表/ 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,是否应该没有安装此修复程序?
agentvr 2014年

1
该Service Pack随它汇总了该修补程序,因此您不会在列表中找到它。
弥敦道C版

4
好。好吧,我想说的下一步是找出消耗内存的确切服务,而唯一的方法是使用来将它们分解成自己的svchost.exe进程SC Config Servicename Type= own。见serverfault.com/questions/12278/...
莱恩·里斯

您确定该过程是合法的svchost.exe吗?
Konrad Gajewski,2015年

您也可以一次停止/终止一项服务,并查看内存使用率何时下降。
ssnobody 2015年

Answers:


1

问题是,是否泄漏?您说的是内存使用情况是“稳定的”。

泄漏=内存使用量随时间增加,而从未减少,因此您必须不时地重新加载服务器。

如果taks长时间(例如,两周)保持在〜1 GB左右,则情况完全正常。现代软件被设计为在必要时使用空闲内存,而且我知道有一些程序可以抢占任何可用空间,以节省内存分配时间。

如果它不妨碍系统运行,请不要触摸它。


1

与重用现有的已分配内存相比,内存分配在CPU周期上非常昂贵。通常,一旦程序启动,直到其功能完成,它都不会“放开”该内存。

例如,Firefox保留内存一段时间。如果您在打开Firefox的情况下将计算机打开一周,您会发现它的内存大小将不断增长。在YouTubing,Google Play音乐和浏览之后,我的内存达到2-4GB-在我重新启动该过程后,内存缩小到300MB。这是由于其缓存功能,并且此行为是设计使然。

我倾向于相信SVCHost进程的运行完全正确。您的服务器正在运行多少服务?1GB听起来并不令人担忧-尽管这取决于您正在运行的服务。


1

下一步,如果您想进一步调查,我将安装进程浏览器(procexp.exe),您可以在Microsoft网站上找到它。这将为您提供哪些服务使用此过程(请参见procexp的屏幕截图),然后可以停止/启动服务,并查看特定的服务是否与释放/获取大的内存分配相关联。它还会告诉您是工作集分配的内存还是专用(主要是堆)的内存。如果它与特定服务相关联,那么您将有一条更清晰的途径进行进一步研究。

不用说,您将需要在约定的停机/维护窗口中进行此测试,或者在测试服务器上进行复制,因为这将中断正常操作。测试完成后,重新启动并检查服务列表是否回到您的正常运行设置。

屏幕截图: http://i.imgur.com/20Ij6Mi.png

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.