asp.net – 生产网络服务器上的间歇性高CPU(100%)

前端之家收集整理的这篇文章主要介绍了asp.net – 生产网络服务器上的间歇性高CPU(100%)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
来自StackOverflow的X-Post:

https://stackoverflow.com/questions/9465123/intermittent-high-cpu-100-on-production-webserver

我们有一个包含3个Web服务器的Web集群,每个Web服务器有24个核心和1个. 24GB内存

我们的应用程序是最新修补的ASP.NET 4.0,带有MVC3,在IIS 7.5上 – 在它自己的应用程序池中.

非常间歇性地(可能每2/3天一次)其中一个网络服务器将停止提供请求,并且所有24个核心将显示100%cpu(内存和磁盘看起来正常).

IIS管理器未完全冻结的次数很少,主动运行请求似乎没有提供任何有用的信息,而是在大量站点区域/请求中随机分布.

一旦服务器死了,我们就可以把它从负载中解放出来 – 在5分钟的不再服务请求之后,cpu活动将回落到正常状态 – 让我们认为它不是无限循环.

工作进程的内存转储(大约4GB大小!)似乎没有在任何托管堆栈跟踪中的任何地方显示任何代码/命名空间 – 但只是.Net开始请求的东西(我可能正在使用WinDbg错误 – 并没有正确加载我们的符号 – 但堆栈跟踪没有显示任何丢失/未命名的方法调用 – 所以我很困惑)

我们的服务器通常非常愉快地处理1000 req / sec,所以这一切都很奇怪.

我们在Perfmon中注意到的一个奇怪的事情 – 争用率/秒变为800.我们的应用程序中没有任何花哨的多线程代码,我们唯一的锁定在我们的缓存代码中(其中没有改变了年龄).

任何有关如何进一步诊断此问题的建议/提示都将非常感激.

干杯.

解决方法

戴夫,
一些想法开始你:

我假设它是w3wp.exe正在吃你的资源.如果没有,可能值得运行一些PAL报告以更好地了解服务器的整体运行状况:http://pal.codeplex.com/有时我甚至会运行PAL,即使它是一个IIS问题… PAL可以发现各种各样的问题你永远不会想到.

检查性能监视器(在峰值之前和期间)…尝试在“慢响应”期间确定您的ASP.Net应用程序请求/秒是否更高…我发现这是告诉您的最快方式如果您处理的请求多于正常情况.

尝试确定是否有一个(或几个)页面需要更长时间才能加载.确保记录IIS统计信息,然后查看所花费的时间.结帐日志分析器(http://www.iis.net/community/default.aspx?tabid=34&g=6&i=1864).

哦,一旦你找出导致问题的URL,就不要忘记StackExchange mini profiler http://code.google.com/p/mvc-mini-profiler/.

此外,不要忽视任何.NET错误捕获你到位:-)

让我们知道你看到了什么.-克里斯

猜你在找的asp.Net相关文章