2009-10-30 21 views
1

什么会导致IIS工作进程无法控制地增长?什么会导致IIS工作进程无法控制地增长?

我有一个错误,如果我带一个页面并加载它,有时它不会添加内存,少量内存(250k-2MB)或非常大的内存量(10MB-30MB)。我不知道是什么导致了这一点,但如果你可以集思广益可能会导致这种行为,我会很感激。

编辑

那么显然你不能缓存.NET控件并从缓存中拉它,没有它莫名其妙地泄漏内存。我试图缓存每次从缓存请求时导致内存上升的菜单控件。在这种情况下,解决方案是将项目放入数组或字典中并缓存,然后在页面加载时重新创建项目。这解决了内存泄漏,这就是为什么我找到它很麻烦。

+0

它增长无界限?还是在某个时候停止增长? – 2009-10-30 14:09:08

+0

它增长无界限。相同的页面,增长变量,似乎没有限制。 – Middletone 2009-10-30 14:42:59

回答

1

可能是一大块原因。可能你正在创建额外的会话,以便分配更多的内存,你没有清理代码中的某些对象,必须重新连接到数据库而不是重用它,分配额外的内存以吸收预期的负载(如果您正在点击在很短的时间内,你可能会触发一些主动的内存管理?)...并且列表继续。

它每次都在吞噬同样的东西吗?过程是否会增长和增长?

这只是一个页面吗?你是否创建了一个空白页面并进行监控,如果这样做?然后尝试评论你的问题页面的各个部分,看看你是否可以隔离该程序?切换跟踪开启,并观看什么叫什么时候?任何嫌疑犯?

很多地方看...也可能是woth上serverfault.com发布此过也

3

不知道你的应用程序做什么它是一种很难说,如果你有泄漏或任何这是否仅仅是应用程序的自然工作内存使用。

你可能想运行通过内存分析器应用程序,如红门Ants Memory Profiler

而且Tess Ferrandezdebugging memory leaks一些伟大的文章。

0

你可以发布页面的代码,或至少一个片段的页面的加载和初始化?
这里有一些步骤,可以帮助:

  1. 要报告通话的第一点可能是你打电话检查什么初始化过程可能与这些相关的静态资源或方法的审查不同的结果。
  2. 检查您的应用程序是否是唯一使用该特定应用程序池并且没有其他人连接的应用程序。
  3. 确保您没有附加调试工具。 检查您的代码并确保所有循环都正确退出,您没有递归进行,并且所有资源始终可以访问且本地。

也许这会有所帮助,但是很难说没有看到你使用的代码。

干杯

相关问题