c# - IIS 高且不稳定的 TTFB

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

我的 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/

相关文章:

c# - 我可以将图像设置为*不*自动调整大小吗?

c++ - 在 C++ 中内联所有方法,没有 Cpp 文件?

c# - IIS/C# 网站与 Tomcat/Java 网站共享身份验证 - 相同的顶级 URL

asp.net - 无法在 IIS(Windows 10)上运行 ASP.net 服务 - 错误 404(未找到)

c# - 在源代码中存储加密 key 有多安全?

c# - JavaScript - 在更改下拉列表索引时禁用文本框

php - __get/__set/__call PHP性能问题

jquery - DataTables jQuery插件在初始加载后设置recordsTotal

http - 浏览文件时出现未经授权的错误

c# - 如何在 C# 中逐个加载目录的文件?