相关疑难解决方法(0)

确定w3wp.exe中保留5.5 GB虚拟内存的人/内容

在我的机器(XP,64)上,ASP.net工作进程(w3wp.exe)始终启动,保留5.5GB的虚拟内存.无论它托管的Web应用程序是什么,都会发生这种情况(它可以是任何内容,甚至是aspx中的空网页).

这个大块的虚拟内存在进程启动时保留,所以这不是某种渐进的内存"泄漏".

一些人使用windbg窥探显示内存问题是Private,Reserved和RegionUsageIsVAD,这表明它可能是某人调用VirtualAlloc的工作.它还表明,所讨论的内存分配/保留为4个大块,每块1GB,还有几个较小的块(每个1/4GB).

所以我想我需要弄清楚谁在调用VirtualAlloc并保留所有这些内存.我怎么做?

在内存分配之前将调试器附加到进程是很棘手的,因为w3wp.exe是由svchost.exe(即IIS/ASP.Net过滤器)启动的进程,如果我尝试自己启动它以便调试它它只是关闭而没有所有这些大量的内存预留.此外,如果我重新使用它们,命令行参数将无效(这是有道理的,因为它是由调用进程创建的管道).

我可以在事后将windbg附加到进程(这是我找到有问题的内存区域的方式),但我不确定在那时可以确定谁分配了什么.

memory asp.net iis virtual-memory

7
推荐指数
1
解决办法
4119
查看次数

标签 统计

asp.net ×1

iis ×1

memory ×1

virtual-memory ×1