
图片说明了一切。在过去的几个月里,我们在 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
谢谢。
小智 0
垃圾收集通常与内存相关,而不是与 CPU 相关。当然,您可能拥有其中包含正在循环的例程的对象,并且这些对象正在缓慢增长或循环迭代之间的时间正在减少。是的,您需要分析进程,因为这会告诉您哪些方法导致了所有 CPU 时间。我推荐 Telerik 的 JustTrace 工具,尽管还有很多其他工具。
另一种想法是,您可能认为您已经处理了对象,但循环仍在运行。考虑使用取消标记或条件优雅地终止循环。
| 归档时间: |
|
| 查看次数: |
1191 次 |
| 最近记录: |