asp.net - 即使仍有可用内存,w3wp.exe 也会耗尽内存

标签 asp.net iis-7 out-of-memory w3wp

我们遇到了一个奇怪的问题。我们的 ASP.NET 应用程序在具有 16Gb RAM 的 64 位 Windows 2008/IIS7 计算机上运行。当 w3wp.exe 进程达到 4Gb 时(我们通过服务器上的任务管理器简单地跟踪它) - 即使仍有大量可用内存,也会抛出内存不足异常。

是否存在已知问题,即 64 位系统(并使用 64 位应用程序池)上的 ASP.NET 进程仅限于 4Gb 内存?

有什么办法可以解除这个限制吗?

最佳答案

听起来好像您在某处有未处置的资源,最终会被垃圾收集,但速度不够快,无法满足您的需求。您是否重用任何 SQLConnection 对象?或者 MailClient 对象?或者非托管 Image 对象?

对于低于预期的内存限制,ASP.NET 应用程序有两种类型的内存使用。一个是保留内存,另一个是实际使用的内存。我相信任务管理器会跟踪实际内存使用情况,但保留内存可能也有限制。要了解您的进程占用了多少保留内存,请转到 IIS7,单击服务器(顶层,应用程序池和站点文件夹上方),然后单击进程选项,然后单击应用程序的进程。它应该显示 CPU 使用情况、请求数量和内存使用情况(保留的和实际的)。

关于asp.net - 即使仍有可用内存,w3wp.exe 也会耗尽内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17532766/

相关文章:

c# - 如何排队服务器 ASP.NET 完成的工作

iis - 由于权限不足,无法读取 Redirection.config

visual-studio-2008 - IIS7 的工作进程是什么?

javascript - Node.js 堆内存不足

python - 为什么 zip 在 Python 2 中使用大量内存?

c# - 在导致错误的查询字符串中发送 Server.UrlEncoded XML

c# - 检索动态创建的 RadioButtonList 的回发值不起作用

visual-studio-2010 - 如何调试我在 IIS 7.5 上运行时使用 PreApplicationStartMethodAttribute 程序集属性设置的方法?

java - 读取和写入大图像

asp.net - 获取 ContentPlaceHolder asp.net 中的控件