Dav*_*ave 6 asp.net iis-7.5 asp.net-mvc mvc cpu-usage
来自 StackOverflow 的 X-Post:
我们有一个包含 3 个网络服务器的网络集群,每个服务器有 24 个内核和 24GB 内存。
我们的应用程序是最新修补的 ASP.NET 4.0,带有 MVC3,在 IIS 7.5 上 - 在它自己的应用程序池中。
非常间歇性地,(可能每 2/3 天一次)其中一个网络服务器将停止服务请求,并且所有 24 个内核将显示 100% CPU(内存和磁盘看起来正常)。
有几次 IIS 管理器没有完全冻结,主动运行的请求似乎没有提供任何有用的信息,而是随机分布在大量站点区域/请求中。
一旦服务器死机,我们就可以将它从负载中取出 - 在可能 5 分钟不再提供服务请求后,CPU 活动将回落到正常状态 - 让我们认为这不是一个无限循环。
工作进程的内存转储(大约 4GB 的大小!)似乎没有在任何托管堆栈跟踪中的任何地方显示我们的任何代码/命名空间 - 但只是 .Net begin 请求内容(我可能正在使用 WinDbg错误 - 并且没有正确加载我们的符号 - 但堆栈跟踪没有显示任何丢失/未命名的方法调用 - 所以我很困惑)
我们的服务器通常很高兴地处理 1000 个请求/秒,所以这一切都很奇怪。
我们在 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 )。
哦,不要忘记 StackExchange mini profiler http://code.google.com/p/mvc-mini-profiler/一旦你找出导致问题的 URL。
另外,不要忽视任何 .NET 错误捕获到位:-)
让我们知道你看到了什么。-克里斯
归档时间: |
|
查看次数: |
12671 次 |
最近记录: |