微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在ASP.NET Web App中查找内存泄漏

在WIN SERVER 2008 R2 Enterprise 64 Bit上,我在2.53 Ghz(2 cpu)和8 GB内存的单个生产服务器(虚拟)上承载了7个网站。

Web服务器是IIS 7,所有网站都使用.NET Framework 4.0应用程序池。

我当前的内存使用量是8GB左右的4.16GB,而w3wp.exe是消耗大部分内存使用量(此时大约为1.6GB),其次是使用(1.5GB)的sqlservr.exe的最多进程。

我想要做的是知道哪个网站是7消耗最多的内存,以便我可以看看。

Windows 7清理C ++内存泄漏?

内存仍然可以修复的错误,但为什么?

内存泄漏debugging与windbg没有用户堆栈跟踪

C ++(窗口)中的分配号码及其预测性

使用gflags + ust,进程内存增加更快

我已经尝试了进程资源pipe理器和资源监视器,但是它只能显示w3wp.exe占用的多less,而不是个别网站的使用情况。

有没有一种方法可以指向内存的老板?

使用简单的Win32 :: Unicode :: File readline循环和StrawBerry Perl“内存不足”

也许一个资源没有发布? 什么可能导致这个?

任务pipe理器不同意Process Explorer?

redirectstdio时Linux BASH内存泄漏

在Apache httpd和模块中search内存泄漏

您可以使用Microsoft的“ 调试诊断”工具进行内存转储。

基本过程是:

启动DebugDiag

取消向导

点击“进程”选项卡

选择w3wp

右键单击并选择“创建完整转储”

悄悄地对自己嗤之以鼻,因为你说“倾倒”

一旦转储完成( 再次滑稽 ),点击“高级分析”选项卡

使用2个内存压力分析器脚本查看是否可以看到哪些对象正在使用大量的内存。

我会建议这样做,结合Uri May的答案,否则你可能会浪费很多时间。

您可以配置每个网站使用不同的应用程序池,这样你将有一个w3wp.exe进程为您承载的7个网站的每个网站。 之后,您可以使用下面的这个链接中的工具来找出哪个网站造成泄漏通过跟踪w3wp.exe的PID最大的内存消耗。

在Windows任务管理器,你可以看到哪个应用程序池正在运行每个w3wp.exe只需显示用户”列。 这是因为每个应用程序池通常都以自己的用户运行。 他们使得在Windows 2012服务器中看到这一点更难 – 您需要先点击“详细信息”选项卡。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐