W3WP.exe - CPU峰值达到100%,然后下降到0%,导致性能下降

问题描述:

我有一个现有的asp.net应用程序工作了几个月没有问题。W3WP.exe - CPU峰值达到100%,然后下降到0%,导致性能下降

问题

突然,(新的代码发布后)一次每隔一两天,CPU开始去从100%的利用率为0%,而且来来回回,每隔几秒钟。

发生这种情况时,aspnet请求正在排队,执行时间和等待时间急剧增加。

重新启动WWW发布服务“解决”了这个问题(大概一天左右)。抢先重启服务也有帮助。

我在事业

由于这个猜测开始了新版本之后,我责怪新的代码,但是我正在寻找的线索可能是什么。我最好的猜测是内存泄漏但w3wp.exe的内存使用永远不会超过6.5GB,并且有足够的物理内存,并且我在会话中存储了大量内容。

任何人都可以提供线索吗?

调试IIS是一项艰巨的任务,我也没有什么经验,所以我希望别人有类似的问题,并可以提供线索。

一些更多的音符/线索 当这个问题的时候重新启动WWW服务,服务的停止需要很长的时间。好两分钟。

+0

100%峰值在它消失之前持续了多久? “ – driis

+0

”100%秒杀消失多久?“ - >最多只需几秒钟。但应用程序放慢速度非常明显和空间 –

+0

为什么你会认为内存泄漏会导致CPU峰值?听起来好像有一个循环在某处失去控制.. – Erix

w3wp.exe是IIS的一部分,但实际上并没有做太多工作。 100%的CPU使用率来自该进程中运行的代码。这是你的的代码。

如果你有空闲内存,那么任何内存泄漏都无所谓。暂时忽略内存泄漏。

您可以在开发机器上重现此问题吗?如果是这样,那么您需要在应用程序运行时对其进行概要分析,以便了解应用程序在哪里花费时间。

+0

谢谢约翰。我想我必须这样做。不能说我很期待它:) –

+1

不期待什么?性能分析可能非常酷。分析器可以给你关于你的代码的答案,你不是问题。 –

+0

至少有一种方法可以在.net进程中耗尽内存,但仍然看起来像有空闲内存可用。 http://blogs.msdn.com/b/yunjin/archive/2004/01/27/63642。aspx这显然不是这里的问题,因为它会导致OOM错误。 – BNL