IIS-CPU 使用率在几天内逐渐增加直至 100%

IIS-CPU 使用率在几天内逐渐增加直至 100%

CPU 占用高

图片说明了一切。过去几个月,我们在 Microsoft Azure 上托管的 IIS MVC 5 网站出现了问题。该网站似乎在几天内持续消耗 CPU,直到达到 100% CPU。我使用 Perfmon/DebugDiag 来捕获服务器达到 100% 时发生的情况,但没有发现任何问题。我还监控了 IIS 工作进程,以查看是否有任何特定请求挂起,但所有请求都在快速处理(直到 100%)。我们抓住了救命稻草 - 我们对代码进行了同行检查,以确保没有发生坏循环/字符串连接。

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

任何有关如何进一步调试的见解都将不胜感激。我按照这篇微软文章操作,但没有成功:http://www.iis.net/learn/troubleshoot/performance-issues/troubleshooting-high-cpu-in-an-iis-7x-application-pool

谢谢。

答案1

垃圾收集通常与内存有关,而不是与 CPU 有关。当然,您可能拥有包含循环例程的对象,并且这些对象正在缓慢增长或循环迭代之间的时间正在减少。是的,您需要分析您的进程,因为这会告诉您哪些方法导致了所有的 CPU 时间。我推荐 Telerik 的 JustTrace 工具,尽管还有很多其他工具。

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

相关内容