IIS – CPU使用率逐渐增加几天,直到100%

高CPU

图片解释了这一切。 在过去的几个月中,我们在Microsoft Azure上托pipe的IIS MVC 5网站遇到了问题。 该网站似乎不断吃光了CPU几天,直到它达到100%的CPU。 我使用Perfmon / DebugDiag来捕获服务器命中率100%时发生的情况,但没有发现正面的结果。 我也监视IIS工作进程,看看是否有任何特定的请求挂起,但所有的请求正在快速处理(直到100%)。 抓住吸pipe – 我们已经有代码的同行检查,以确保没有不良循环/stringconcat正在发生。

我的猜测是这与垃圾收集器有关…重置应用程序池可以解决问题(几天)。

任何有识之士将不胜感激,如何进一步debugging。 我没有成功地遵循这篇Microsoft文章: http : //www.iis.net/learn/troubleshoot/performance-issues/troubleshooting-high-cpu-in-an-iis-7x-application-pool

谢谢。

垃圾回收通常是与内存相关的,而不是CPU相关的。 当然,你可能有一些有循环的例程,这些对象正在慢慢增长,或者循环迭代之间的时间在减less。 是的,你需要分析你的进程,因为这会告诉你哪些方法导致了所有的CPU时间。 我推荐Telerik的JustTrace工具,虽然还有很多其他的东西。

另一个想法是,你可能会认为你已经处理了你的对象,但循环仍在运行。 考虑用取消令牌或条件优雅地终止你的循环。