the*_*bit 8 iis asp.net application-pools windows-sbs-2011
在 Small Business Server 2011 安装中,整个 w3wp.exe 进程似乎使用了不成比例的大量内存。SBS 开箱即用的安装共有 7 个站点和 20 个 ASP.NET 应用程序池(Sharepoint、Exchange、WSUS 和 SBS 特定的东西,如远程工作网站)。
随着时间的推移,产生的十几个 w3wp.exe 进程往往会消耗超过 4 GB 的服务器内存,峰值应用程序池是属于 WSUS 的应用程序池,工作集中大约有 800 MB。通过 IIS MMC 手动回收应用程序池有助于暂时减少内存使用量(w3wp.exe 进程缩小到 10 MB,其中一些进程会快速增长),但显然不是管理员想要整天做的事情。我找不到关于自动回收 SBS 预安装应用程序池的任何建议,所以我有点不愿意在生产系统上“就这样做”。
我在网上关于如何限制这种情况的研究只抛出了一些帖子,指出 w3wp 内存消耗不会损害但会提高性能,因为内存将“在其他应用程序需要时释放”。问题是它不起作用:
我几乎从不管理 IIS 或 ASP.NET 应用程序,因此欢迎任何有关如何有效调整应用程序池的内存要求的想法。
这就是我最终做的:
通过设置在所述privateBytesLimit参数设置为.NET AppPools为较低的值(5 MB)服务器应用程序的高速缓存web.config在%WINDIR%\Microsoft.NET\Framework\<version>\Config如建议此答案:
<configuration>
<system.web>
<caching>
<cache privateBytesLimit="5242880" privateBytesPollTime="00:01:00" />
</caching>
</system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)
这有助于使用默认池回收设置将内存使用量减少到 1 GB 以上。
显然,使用“服务器”类型的垃圾收集器 ( <gcServer = "true">)也会导致大量内存消耗,但看起来<gcServer>默认设置为 false。
如果您怀疑由此产生的内存消耗是由于软件缺陷导致的问题,您可以使用 Microsoft DebugDiag 1.2 创建完整的内存转储并分析转储中的常见问题。如果您认为可能存在内存问题,则需要通过选择“监控泄漏”选项来启用泄漏跟踪,并在创建/分析转储之前让它运行一段时间。
DebugDiag 1.2 下载
https://www.microsoft.com/download/en/details.aspx?id=26798

| 归档时间: |
|
| 查看次数: |
47742 次 |
| 最近记录: |