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-mvc – 无Cookie会话和跨站点表单帖子
- asp.net-mvc – ASP.NET Core TestServer为Razor视图生成HT
- asp.net-mvc – 发现MVC项目中是否使用views / partials
- asp.net-mvc – 相同的项目解决方案或同一解决方案中的新项
- asp.net – 无法加载文件或程序集…数组下标超出范围
- asp.net-core – AspNetCore Abstractions无法加载
- asp.net-mvc – 命名约定 – 控制器的一个规则,没有模型和视
- asp.net-mvc – 如何正确识别vs2008版本级别?
- 如何在自动生成的列中隐藏ASP.NET GridView中的列?
- asp.net-4.0 – Asp.net 4.0:如何在自定义错误页面中获取异
- asp.net-mvc-5 – ASP.NET MVC 5 Identity 2 Pas
- RegisterServices中的NinjectWebCommon绑定在Web
- asp.net-mvc – ASP.NET MVC LINQ to SQL或Entit
- ASP.NET网站或Web项目
- asp.net-mvc-3 – DBContext,状态和原始值
- Asp.net生成Excel文件并下载(更新:解决使用迅雷
- 初学ReactJS,写了一个RadioButtonList组件
- Asp.net,在哪里存储登录用户的用户名?
- asp.net – 调用HttpClient.GetAsync时出错:基础
- asp.net网站的“网站正在建设中”页面