【问题标题】:IIS/Pool/Web API / taking long time for first request under poolIIS/Pool/Web API / 池下的第一个请求需要很长时间
【发布时间】:2020-05-25 13:56:38
【问题描述】:

第一次请求调用 Web API 的响应时间很长!

尽管我们更改了 WEB API 池的以下设置 - 然后我们注意到等待时间的次数明显减少 - :

StartMode 到 AlwaysRunning

空闲超时(分钟)到 0

但是第一次请求仍然有很长的响应时间,特别是在早上(工作时间之前)或周末,这是什么原因造成的?您建议的任何缺少的设置?我们是否需要更改任何其他设置以自动运行池? -下面的高级设置快照-

在我看来,IIS 或池是如何定期回收的!但是我正在考虑将 StartMode 更改为“AlwaysRunning”将自动运行 Pool 并保持它在回收或关闭后继续运行!

顺便说一句:Recycling /Regular time intervale 的设置是 1470

【问题讨论】:

  • 使用性能分析器来分析您的 Web 应用程序的初始化过程。这应该可以解释为什么响应第一个请求需要这么长时间,然后您可以将其减少到适度的数量。对 IIS 设置的所有 hack 只是隐藏了真正的问题。
  • @Lex Li 用户期望几乎是即时加载/响应。您所说的是任何几乎不能立即启动的应用程序都是真正的问题。我觉得真正的问题是,在低流量情况下,IIS 的这种默认行为是有缺陷的,需要修改。

标签: iis application-pool webapi


【解决方案1】:

它可能与您的 ORM 框架有关,例如 Entity framework。 请参阅下面的讨论。
How to "warm-up" Entity Framework? When does it get "cold"?
为了使Start Mode配置生效,我们需要安装应用程序初始化Windows功能。

https://serverfault.com/questions/683017/first-request-after-a-while-always-slow-asp-net-mvc-iis-8-5-windows-server
此外,预编译网站可能是加快首次访问速度的好选择。
请查看以下链接。
Fixing slow initial load for IIS

【讨论】:

    猜你喜欢
    • 2018-01-15
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    • 2019-05-17
    • 2020-03-19
    • 1970-01-01
    • 2016-11-07
    • 2013-12-08
    相关资源
    最近更新 更多