首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IIS6 w3wp.exe工作进程占用大量内存-第0代堆大小太大

IIS6 w3wp.exe工作进程占用大量内存-第0代堆大小太大
EN

Stack Overflow用户
提问于 2014-02-28 20:42:34
回答 1查看 1.1K关注 0票数 0

问题是IIS worker会消耗大量内存。在使用VMMAP检查w3wp进程后,我注意到私有WS的最大组件是托管堆,即GC内存。

此外,我使用性能监控检查了w3wp进程,结果如下:

代码语言:javascript
运行
复制
# Bytes in All Heaps : 32MB
# Gen 0 Collections : 4
# Gen 1 Collections : 3
# Gen 2 Collections : 2
Gen 0 Heap Size 570MB
Gen 1 Heap Size 5MB
Gen 2 Heap Size 26MB
Active Sessions : 4

Gen 0堆大小随着每个新会话的增加而增加。峰值出现在我有4个活动会话(~570MB)的时候。当我有6个会话时,它会减少到~250MB,然后再次增加,直到回收应用程序池(~8-9个活动会话)。

据我所知,Gen 0堆的大小必须非常小(与L2缓存相当),这是触发GC运行Gen 0 GCs的大小。

为什么Gen 0堆这么大?

我有以下环境:

代码语言:javascript
运行
复制
IIS 6.0 
The application is Asp.Net WebForms
Application Pool is restricted to 700Mb, and it gets recycled when 
I have ~8-9 active sessions, so all session are lost. 
.Net Framework v4.0.3
64 bit version of w3wp worker. 
I also inspected the application memory using CLR profiler and the 
 number of Bytes in all heaps are 10-60 mb depending on number of active sessions.

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2014-03-07 22:33:21

http://msdn.microsoft.com/en-us/library/ee817660.aspx

使用WinDbg或任何商业.NET内存分析器,您应该能够查看堆中的对象以及它们是否应该在那里。

常见的原因是没有StringBuilder的字符串操作和会话中的大对象,如DataTable

在你的案例中找到确切的原因并进行补救。

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

https://stackoverflow.com/questions/22095578

复制
相关文章

相似问题

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