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 – 重音法语字符
- asp.net-mvc – 您使用ASP.NET MVC的View Engine是什么?
- asp.net-core-mvc – 在ASP.NET Core中,通过将身份验证转发
- asp.net-mvc – MVC4捆绑使用Scripts.Render时速度慢
- 在asp.net mvc中生成javascript文件
- ASP.net移动应用程序开发
- asp.net-mvc-3 – 具有ASP.NET MVC3和嵌入式Razor视图的插件
- asp.net-mvc-3 – 如何在带有剃刀的asp.net mvc3中使用Kend
- asp.net-mvc-3 – 如何指定默认LayoutPage在Razor在ASP.NET
- asp.net-web-api – 如何在Web Api调用期间获取用户上下文?
