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