w3wp.exe内存使用问题

4

我们有一个基于.Net的网站,运行在Windows Server 2008 R2标准版上的IIS 7.0中。此外,我有一台独立的服务器上安装了SQL Server。

两台IBM x3650服务器都拥有32GB的内存。有时候,IIS上的w3wp.exe服务会占用20GB的内存。我该怎么办?

谢谢。


内存使用量会随时间增加吗?您可以监视RAM使用量,然后尝试找到RAM使用量增加与特定时间执行的作业或事件之间的关系,以确定内存泄漏问题。 - ub1k
ub1k- 正如你所说的,增加。 - MaxCoder88
虽然问题与内存不足异常有关,但相同的原则适用:http://stackoverflow.com/questions/6305172/system-outofmemoryexception-due-to-asp-net-worker-process/6307393#6307393 - Kev
2个回答

2
你是否使用URLRewritingNet重写你的URLs? 我在Windows Server 2008 R2上使用IIS7时遇到了严重的性能问题,即使只有一个用户也会导致w3wpe.exe达到最大值!解决方法是放弃该库并使用IIS7 Rewrite规则。 这个问题在这里得到了很好的记录:http://blog.kurtschindler.net/post/urlrewritingnet-performance-issues 祝一切顺利, David

嗨,非常感谢您提供的链接。我没有使用URL重写,现在也可能永远不会使用了 :) - Andrew Simpson

0

再说一遍,找到内存泄漏问题真的很困难。首先,在每个请求上进行一些记录 -> 并记录使用的内存量。然后找出所有的任务 -> 和可能生成泄漏的代码部分(只要它们不在每个请求期间执行),还要记录它们的开始和结束。

这样做后,您可以检查日志并搜索其中内存使用显着增加的部分,然后可能可以确定哪部分代码正在生成泄漏。

另一件事是您可以搜索“内存泄漏 WHAT YOU USE”,其中WHAT YOU USE是您使用的某些机制,无论它们是什么。

另外,有一些应该做的事情可以避免内存泄漏,我想到的第一个是探索using()语句。

哦,别指望你会在接下来的20分钟内找到问题。这需要几天时间(尝试通过日志调试)。


嗨,感谢您的反馈。我认为我需要在我的问题上更加清晰明了。我不认为我有内存泄漏。当加载图像时,内存会增加到140,000k,然后再次降至130,000k。我只是好奇知道通过获取更多的RAM是否会影响w3wp内存缓存。我假设这个过程在加载时会增加,在垃圾回收启动时会减少?我只是猜测,因为我正在学习IIS管理。 - Andrew Simpson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接