首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >w3wp.exe hogs内存

w3wp.exe hogs内存
EN

Server Fault用户
提问于 2012-01-05 13:51:05
回答 4查看 48.6K关注 0票数 8

在Small Business Server 2011安装中,大量的w3wp.exe进程似乎使用的内存不成比例。SBS的开箱即用安装共有7个站点和20个ASP.NET应用程序池(Sharepoint、Exchange、WSUS和SBS特定的东西,如远程Workplace)。

随着时间的推移,产生的十几个w3wp.exe进程倾向于消耗超过4GB的服务器内存,峰值应用程序池属于WSUS,工作集中的内存约为800 MB。通过IIS手动回收应用程序池有助于暂时减少内存使用( w3wp.exe进程收缩到10 MB,其中一些进程很快地重新运行),但显然管理员不想整天这样做。我找不到任何关于SBS预装应用程序池的自动回收的建议,所以我不愿意在生产系统上“只做它”。

我在网络上关于如何限制这一点的研究只提供了一些帖子,声称w3wp内存消耗不会造成损害,但会提高性能,因为“其他应用程序需要时释放内存”。问题是,它没有成功:

  • 首先,SBS是一个多角色服务器,其中一个角色(主要角色)是CIFS网络存储,它极大地受益于文件系统缓存,而文件系统缓存又依赖于内存“空闲”,就像“其他进程不以任何方式使用”一样--几乎见不到用户和占用内存的ASP.NET应用程序池是适得其反的。
  • 另一件事是,在内存短缺时,我仍然必须看到w3wp实例内存消耗的大幅减少--我看到的是,内存不足的幅度明显小于100 mb和过度的交换--再次损害了性能。

我很少管理IIS或ASP.NET应用程序,所以任何关于如何有效地减少应用程序池的内存需求的想法都是受欢迎的。

EN

回答 4

Server Fault用户

回答已采纳

发布于 2012-01-11 16:09:00

这就是我最后所做的:

将.NET AppPools的服务器应用程序缓存设置为低值(5MB),方法是将web.config at %WINDIR%\Microsoft.NET\Framework\<version>\Config中的privateBytesLimit参数设置为这个答案中的建议:

代码语言:javascript
复制
    <configuration>
      <system.web>
         <caching>
           <cache privateBytesLimit="5242880" privateBytesPollTime="00:01:00" />
         </caching>
      </system.web>
    </configuration>

这有助于在默认池回收设置下将内存使用量减少到略大于1GB。

显然,也使用了“服务器”类型的垃圾收集器(<gcServer = "true">) 会导致大量的内存消耗,但正如看起来的那样,默认情况下<gcServer>设置为false。

票数 7
EN

Server Fault用户

发布于 2012-01-05 14:25:41

欢迎来到SBS的美好世界。建议的RAM要求=10 for .而且它至少需要8gb。(据微软称.)理由很充分。不是一台调得很好的机器.它非常邋遢,臃肿,阳光下的一切都捆绑在一起。你能扔给那个盒子的内存越多..。越好。不幸的是,您被限制在32 to的最大值。哪个白痴..。是愚蠢的。

票数 7
EN

Server Fault用户

发布于 2012-01-05 16:54:16

如果您怀疑由此产生的内存消耗是由于软件缺陷造成的问题,则可以使用Microsoft DebugDiag 1.2创建一个完整的内存转储,并分析转储中常见的问题。如果您认为可能存在内存问题,则需要通过选择"Monitor for泄漏“选项启用泄漏跟踪,并让它在创建/分析转储之前运行一段时间。

DebugDiag 1.2下载

https://www.microsoft.com/download/en/details.aspx?id=26798

票数 6
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/346935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档