【问题标题】:IIS Memory Leaks - Session sizeIIS 内存泄漏 - 会话大小
【发布时间】:2013-03-13 15:59:59
【问题描述】:

我正在尝试解决我们的 Web 应用程序的内存问题。使用 SCOM 工具,我看到我们的应用程序正在使用 5.8 GIGS 的内存。这发生在我们无法访问的生产服务器上。它不会在 DEV 和 TEST 中发生(可能是由于使用)。

我怀疑这与会话中的对象有关。有没有办法知道我们的会话使用了多少总内存?

您能否给我一些提示,帮助我查明内存泄漏的来源?

据我所知,我没有使用 Interop 或任何非托管代码。 这是一个在 IIS7 上运行的 ASP.Net 4 Web 应用程序。

【问题讨论】:

  • 您的会话超时设置为多长时间?您是否在 ApplicationState 中存储任何内容?
  • 我是这个项目的新手。我看到了一些 ApplicaitonState 的使用,但不是很多。会话使用过多。会话超时设置为 30 分钟。我不喜欢使用这么多会话,我认为这就是问题所在。但我需要一种方法来为管理查明它——或者证明我错了。

标签: asp.net session iis-7 memory-leaks


【解决方案1】:

【讨论】:

  • 另一个选项,但可能不是最好的,因为问题只出现在生产中,是使会话状态存储在 SQL Server 中。如果内存使用量减少,那么您可以假设会话状态是问题所在。如果会话状态被广泛使用,则很可能是问题所在,尤其是当您有很多人访问该网站时。
  • 我从回复中得知,无法确定会话专用了多少内存。这是正确的吗?
  • 我们注意到内存使用并没有下降。它在大约一小时内增加到大约 6 GIG,然后保持在那个高位。当使用率非常低时,它会在一夜之间保持这种状态。好像内存永远不会被释放。
  • 问题可能不是会话状态。如果您的会话超时设置为 30 分钟,那么所有会话对象都应在该段不活动之后进行 GC。随着这些会话的减少,您会看到内存减少。您正在检查什么进程以及如何检查它的内存使用情况?
猜你喜欢
  • 1970-01-01
  • 2013-08-17
  • 1970-01-01
  • 2011-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-21
相关资源
最近更新 更多