2

我正在使用StackExchange.MiniProfilerMVC 和 EntityFramework 附加组件来尝试跟踪针对我们网站上的一种类型的请求可靠地发生的长 TTFB。正如您在底部的图像中看到的,此请求指示的持续时间为 504.3 毫秒。我相信这对应于调用MiniProfiler.StartinBeginRequest和调用MiniProfiler.Endin之间的EndRequest时间(减去孩子步骤的时间)。使用浏览器工具我可以看到这个请求的 TTFB 与 MiniProfiler 的数据相对应,所以我相信 MiniProfiler 是准确的。我一直在围绕越来越多的代码添加分析器步骤,并且认为现在所有内容都已包装,但它们加起来并没有接近 504 毫秒。

这个请求是一个 ajax 请求,它发生在一个页面上,同时有几个其他请求在进行。如果我将 url 取出并从同一个浏览器中单独点击它,则持续时间和 TTFB 仅为约 100 毫秒。这似乎意味着来自其他请求之一的某些东西正在阻止这个请求,但我认为我们根本没有任何应该阻止的东西,当然不会那么长,其他请求都不会花费那么长时间。

该站点作为中级 Azure 应用服务运行,这可能是某种限制吗?我怎么能确认或否认呢?任何可能会在此处公开更多数据的 MiniProfiler 技巧?

MiniProfiler 输出

4

1 回答 1

0

这个问题在这里与这个 SO 问题有关: 我刚刚发现为什么所有 ASP.Net 网站都很慢,我正在努力解决这个问题

会话状态被锁定,因此如果您有来自一个浏览器/会话的大量同时请求,它们最终可能会相互等待。将我们的一些相关控制器指定为带有属性的只读控制器会使坏的都消失:[SessionState(SessionStateBehavior.ReadOnly)]

于 2016-07-01T15:07:19.350 回答