加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 22:37:18 所属栏目:asp.Net 来源:网络整理
导读:来自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,带有
来自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错误捕获你到位:-)

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读