IIS 高且不稳定的 TTFB
IIS High and unstable TTFB
我的 MVC 应用程序在 IIS 6.0(生产服务器上为 7.0)上使用了 API 运行。对于 API,我在 API.ashx 文件中使用 IHttpHandler 实现。
我有许多不同的 API 调用正在对我的 API.ashx 文件进行,但我将介绍一个没有数据库调用的调用,因此它绝对不是数据库问题。
在 ProcessRequest 方法的最开始,我添加了 Diagnostics.Stopwatch 来跟踪性能并在最后一个方法的行停止它。
我的秒表的输出始终稳定(+-2ms)并平均显示 5ms(!!!)。
但在我的网站上,我看到了绝对不稳定和不同的第一个字节时间。它可能从 15 毫秒开始,可能会增长到 1 秒,平均显示 300 毫秒,但在日志中,我仍然会从秒表中获得稳定的 5 毫秒。
这发生在我使用的每台服务器上,甚至在本地(所以这不是网络相关的问题)和生产中。顺便说一句,所有静态资源的加载速度都非常快(<10ms)
任何人都可以提出解决方案吗?
如果不提供更多细节,这听起来很难诊断。您能否编辑您的问题并添加一个瀑布图来显示有问题的缓慢 API 调用?制作瀑布图的一个非常好的工具是 http://webpagetest.org
我还建议阅读这篇关于诊断慢速 TTFB 的文章。
http://www.websiteoptimization.com/speed/tweak/time-to-first-byte/
它详细介绍了响应缓慢背后的一些原因。
以下是一些可能会降低服务器速度的服务器性能问题。
- 内存泄漏
- 进程/连接太多
- 外部资源延迟
- 低效SQL 查询
- 数据库调用缓慢
- 服务器资源不足
- 共享服务器过载
- 网站响应时间不一致
希望对您有所帮助!
我的 MVC 应用程序在 IIS 6.0(生产服务器上为 7.0)上使用了 API 运行。对于 API,我在 API.ashx 文件中使用 IHttpHandler 实现。
我有许多不同的 API 调用正在对我的 API.ashx 文件进行,但我将介绍一个没有数据库调用的调用,因此它绝对不是数据库问题。 在 ProcessRequest 方法的最开始,我添加了 Diagnostics.Stopwatch 来跟踪性能并在最后一个方法的行停止它。 我的秒表的输出始终稳定(+-2ms)并平均显示 5ms(!!!)。 但在我的网站上,我看到了绝对不稳定和不同的第一个字节时间。它可能从 15 毫秒开始,可能会增长到 1 秒,平均显示 300 毫秒,但在日志中,我仍然会从秒表中获得稳定的 5 毫秒。
这发生在我使用的每台服务器上,甚至在本地(所以这不是网络相关的问题)和生产中。顺便说一句,所有静态资源的加载速度都非常快(<10ms)
任何人都可以提出解决方案吗?
如果不提供更多细节,这听起来很难诊断。您能否编辑您的问题并添加一个瀑布图来显示有问题的缓慢 API 调用?制作瀑布图的一个非常好的工具是 http://webpagetest.org
我还建议阅读这篇关于诊断慢速 TTFB 的文章。
http://www.websiteoptimization.com/speed/tweak/time-to-first-byte/
它详细介绍了响应缓慢背后的一些原因。 以下是一些可能会降低服务器速度的服务器性能问题。
- 内存泄漏
- 进程/连接太多
- 外部资源延迟
- 低效SQL 查询
- 数据库调用缓慢
- 服务器资源不足
- 共享服务器过载
- 网站响应时间不一致
希望对您有所帮助!