Ore*_*zor 8 .net iis asp.net-mvc
我正在NewRelic中进行一些跟踪,我看到几乎每个请求都包含对'System.Web.Mvc.MvcHandler.ProcessAsyncRequest()'的调用.
此函数调用可能需要300毫秒到100秒(严重的是100秒).我试图搜索msdn文档,但在http://msdn.microsoft.com/en-us/library/system.web.mvc.mvchandler.aspx上没有任何内容
显然,这里有些东西在骗我.
我有一些理论说明为什么这么长时间:
类型推断?我正在使用结构图.
服务器资源问题?
.net版本不兼容某种?
asp.net mvc某种不兼容性?
环境:
.net 4
asp.net mvc 3
专用的vm
当我发现这个问题时,我和@garfbradaz 的想法一样,并查看了 MVC 源代码。这很有趣,因为我没有找到该方法的参考ProcessAsyncRequest。
因此,我认为这可能是 New Relic 注入的东西,或者正如你所说,这是转移注意力的东西,有东西在欺骗我们!我关闭了 New Relic,并联系了他们的支持团队。
今天,在 New Relic 团队一位反应迅速且彬彬有礼的成员发了几封电子邮件后,他们回复了我并确认这是一个(某种意义上的)错误。以下是他们的回应:
ProcessAsyncRequest 是一个自定义名称,我们用于记录的任何不是/不继承自“System.Web.UI.Page”的指标。鉴于 MVC 视图引擎使用“System.Web.Mvc.ViewPage”,所有这些指标都将错误地属于 New Relic 名称“ProcessAsyncRequest”。
我将致力于对代理和核心仪器进行修改,希望能够适当地聚合这些指标。对于由此给您带来的困惑和麻烦,我深表歉意。
当我接近解决方案时,我会向您提供最新信息。
编辑:下面来自 New Relic 的进一步回应 - 看起来他们已经修复了。
我刚刚推送了一个提交,它将帮助我们更好地对来自已安装代理的事务进行分类。
就性能问题而言,我们确实发现了 AppHarbor 出色的工程师报告的一个问题,该问题导致 TypeLoadExceptions,这可能与放入缓存的加载/编译代码缓慢有关。我们已经找到了原因,并且正处于该修复的最后测试阶段,我们希望在代理的下一个版本中得到修复。
New Relic 的 Nick 对此做出了出色的回应,他们的产品非常有用,所以我没有任何不好的感觉,只是想在这里分享详细信息。
很高兴发现我的 MVC 应用程序中没有幽灵!
目前,我对遇到这些问题的人的建议是关闭 New Relic,直到下一个版本发布。
编辑 2:New Relic 的 Nick 今天给我发了电子邮件 - 他们最新的代理(版本 2.0.9.15) - 现已可用,应该可以解决此问题。
| 归档时间: |
|
| 查看次数: |
2291 次 |
| 最近记录: |