ASP.NET MVC 在寻找瓶颈时迷失了方向
Posted
技术标签:
【中文标题】ASP.NET MVC 在寻找瓶颈时迷失了方向【英文标题】:ASP.NET MVC lost in finding botleneck 【发布时间】:2012-10-15 14:04:07 【问题描述】:我有ASP.NET MVC
应用程序,它接受文件上传并使用 SignalR 进行结果池。该应用程序托管在具有 IIS7、4 Gb Ram 和两个核心 CPU 的 Prod 服务器上。
开发服务器上的应用程序运行良好,但是当我将它托管在具有大约 50 000 users per day
的 Prod 服务器上时,该应用程序在运行五分钟后变得不负责任。网页请求时间急剧增加,加载一页大约需要 30 秒。我试图记录所有MvcApplication.Application_BeginRequest
事件调用并在5 minutes
中获得9000
命中。不确定这样的应用的点击次数是否可接受。
我使用 ANTS 性能分析器(在 Prod 应用程序分析中没有用,速度慢并且占用所有内存)来分析代码,但分析器在我的代码/MSSQL 查询中没有显示任何时间延迟问题。
我还尝试监控 CPU 和 RAM 峰值问题,但没有发现任何问题。 CPU 百分比有时会达到 15%,但从未上升,内存使用率正常。
我怀疑 ASP.NET/IIS7 中的请求或线程限制有问题,但不知道如何分析它。
有人可以建议任何可以在这种情况下提供帮助的分析解决方案吗?已经尝试了两周没有任何结果:(
【问题讨论】:
听起来您正在消耗一些资源并且不得不等待它们释放。我会检查我的代码,以确保所有数据库连接在使用后都已关闭,所有服务客户端都已被释放,并且任何内存消耗量大的对象在完成后立即被释放。 【参考方案1】:您可以尝试使用MiniProfiler,更具体地说,使用专为 ASP.NET MVC 应用程序创建的MiniProfiler.MVC3
NuGet 包。它将向您显示各种有用的信息,例如执行请求时不同方法所花费的时间。
【讨论】:
以上是关于ASP.NET MVC 在寻找瓶颈时迷失了方向的主要内容,如果未能解决你的问题,请参考以下文章
Silverlight 业务应用程序 - ASP.Net MVC
ASP.NET MVC + IIS7 + FireFox:URL 中的斜杠