2014-09-22 68 views
1

试图找出为什么我的一些应用程序服务器使用newrelic爬行超过1秒的响应时间。我们使用WebApi 2.0和MVC5。慢交易 - WebTransaction受到打击。这是什么意思?

正如您在下面看到的,大部分时间都花在'WebTransaction'下面。吞吐量数据并不特别高 - 这可能是什么原因造成的,我可以采取哪些措施来降低吞吐量?

感谢

Taken from newrelic.com

编辑我加入交易追踪到这个功能得到进一步的分析 - 见下:

enter image description here

超过1的System.Web秒来等待.HttpApplication.BeginRequest()。 任何洞察到这一点,将不胜感激。

回答

1

好的 - 我现在已经解决了这个问题。

原因

我的一个记录处理该同步它的数据到云存储被初始化每次被实例化时,它也参与到Azure的表存储的调用。当它传递到控制器中时,每次调用API都会导致此实例化。 这是一个阻塞呼叫,所以它为每个呼叫加上1秒。一旦我配置了该初始化为服务器生命周期宽,

观测

由于阻塞调用在所述控制器被构建的时间(由于统一解决在该点的依赖关系)新制作遗物报告以此为

System.Web.HttpApplication.BeginRequest()

虽然我很想看到这一点的颗粒,我们可以从交易跟踪见上它实际上7个调用表存储(仍然不太确定为什么是7),导致我走下了这条道路。

不错的工具 - 我的新遗物订阅开始为自己付费。

0

看来大部分时间都花在Account.NewSession上。但是如果不深入数据就很难说。如果您需要更深入了解代码块,可以考虑添加Custom Instrumentation

如果您希望我们更深入地调查此问题,请通过support.newrelic.com与我们联系,我们将在其中提供你手上的账户信息。

+0

我的理解是,.NET控制器是我的代码正在运行的地方 - 这是正确的吗? WebTransaction可以覆盖我在其中一个控制器操作中写入的C#代码吗? – 2014-09-22 23:43:40

+0

请参阅上面的编辑以获取更多信息 – 2014-09-23 02:42:47