IIS高且不稳定的TTFB

时间:2015-07-07 14:31:32

标签: c# performance iis model-view-controller load

我的MVC应用程序使用的是在IIS 6.0上运行的API(生产服务器上的7.0)。对于API,我在API.ashx文件中使用 IHttpHandler 实现。

我对API.ashx文件进行了很多不同的API调用,但是我会告诉一个没有数据库调用的API调用,所以它肯定不是数据库问题。 在ProcessRequest方法的最开始,我添加了 Diagnostics.Stopwatch 来跟踪性能并在最后一个方法的行中停止它。 秒表的输出总是稳定的(+ - 2ms),平均显示5ms(!!!)。 但在我的网站上,我看到绝对不稳定和不同的时间到第一个字节。它可能从15ms开始,可能会增长到1秒,并且平均显示300毫秒,但在日志中我仍然可以使用秒表稳定5毫秒。

这种情况发生在我使用的每台服务器上,甚至在本地(因此这不是与网络相关的问题)和生产中。 BTW所有静态资源都加载得非常快(<10ms)

有人能建议解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

这听起来很难在没有更多细节的情况下进行诊断。你可以编辑你的问题并添加一个瀑布图表来显示有问题的API调用吗?生成瀑布图的一个非常好的工具是http://webpagetest.org

我还建议阅读这篇关于诊断慢速TTFB的文章。

http://www.websiteoptimization.com/speed/tweak/time-to-first-byte/

它详细介绍了缓慢响应背后的一些原因。 以下是一些可能会降低服务器速度的服务器性能问题。

  • 内存泄漏
  • 流程/连接过多
  • 外部资源延迟
  • 效率低下的SQL查询
  • 数据库调用缓慢
  • 服务器资源不足
  • 重载的共享服务器
  • 网站响应时间不一致

希望有所帮助!