什么可能导致IIS工作进程无法控制地增长?
我有一个错误,如果我拿一个页面并加载它有时它不会增加内存,少量内存(250k-2MB)或非常大的内存(10MB-30MB)。我不知道造成这种情况的原因是什么,但如果你能集思广益,可能会引起这种行为,我会很感激。
修改
所以显然你无法缓存.net控件并将其从缓存中拉出来,而不会以某种方式泄漏内存。我试图缓存一个菜单控件,导致每次从缓存请求时内存都会上升。在这种情况下,解决方案是将项目放入数组或字典中,然后缓存,然后在加载页面时重新创建项目。这解决了内存泄漏问题,这也是我找到它时遇到很多麻烦的原因。
答案 0 :(得分:3)
如果你的应用程序发生了什么事情,我们很难说你是否有泄漏,或者这只是应用程序的自然工作内存使用情况。
您可能希望通过内存分析器运行您的应用程序,例如Red Gate的Ants Memory Profiler
同样Tess Ferrandez在debugging memory leaks上有一些很棒的文章。
答案 1 :(得分:1)
可能是一大堆原因。可能是你正在创建额外的会话,所以它分配更多的内存,你没有清理你的代码中的一些对象,必须得到一个新的连接到DB而不是重用一个,分配额外的内存来吸收预期的负载(如果你正在打它很快就可能会触发一些主动内存管理?)......然后列表继续。
每次都会吞下同样的东西吗?这个过程是否会成长和发展?
只是一页吗?您是否创建了一个空页面并监控它是否也是如此?然后尝试评论您的问题页面的各个部分,看看您是否可以隔离该程序?切换跟踪并观看什么时候被叫,什么时候?有疑问吗?
很多地方要看......也许可能会在serverfault.com上发布这个
答案 2 :(得分:0)
您可以发布该页面的代码,或者至少是一个片段的加载和初始化页面吗? 以下是一些可能有用的步骤:
也许这会有所帮助,但如果没有看到您正在使用的代码,很难说。
干杯