【发布时间】:2011-09-02 06:20:36
【问题描述】:
我经常收到此消息并认为它不常见,我该如何解决此问题?
服务应用程序池“mywebsite.com”的进程 ID 为“8052”的工作进程已请求回收,因为它已达到其私有 字节内存限制。
【问题讨论】:
我经常收到此消息并认为它不常见,我该如何解决此问题?
服务应用程序池“mywebsite.com”的进程 ID 为“8052”的工作进程已请求回收,因为它已达到其私有 字节内存限制。
【问题讨论】:
您好,这不是因为超时而过期,而是由于内存限制而导致的应用程序池回收。通常非常糟糕。
如果您可以完全控制您的 ASP.NET 应用程序,我建议您仔细分析它并检测您在哪里分配而不是释放/处置大量内存。
这可能有助于了解用户经常经历哪些常见用例并开始调查这些用例。
您是否在内存中加载大量字节 [] 用于文件下载?
你是否在 Session 中保留了太多引用?
有一次我们遇到了类似的问题,几周后我们才发现我们在 Session 中存储了对页面的引用,因此所有访问过的页面都一直保存在内存中。不容易找到,但一旦我们纠正了这个问题,问题就解决了。
【讨论】:
您可能有内存泄漏。有许多可能的原因,可能是使用静态事件注册的会话或请求实例。试图将过多数据加载到内存中、会话超时设置过长等操作。
您需要进行一些分析以确定原因。
当然,也有可能您只是没有足够的内存来容纳用户数量并需要扩展,但除非您有大量流量,否则这种可能性极小。
【讨论】:
也许您的应用程序使用了大量内存?关于this post,您已达到应用程序允许的内存大小,IIS 重新启动应用程序池。
【讨论】: