Azure 应用服务网站在空闲一段时间后响应时间较慢



在过去的几周里,我们一直在调查一些性能问题,其中我们的 MVC 应用程序对第一个请求的响应非常慢。我们说的是第一个请求需要 30-45 秒,每个新视图需要 3 秒。我们的MVC应用程序正在使用位于同一服务器上的OData API(Web API)。除了与 MVC 应用程序相同的性能问题外,对实体框架版本 6 的第一个查询在 6 秒内执行,新查询的执行速度比后续查询慢 200 毫秒。

为了满足我们的要求,我们选择执行所有已知的 Ef 查询,并从 Global.asax 中的Application_Start命中我们所有的 MVC/API 端点。这似乎至少可以正常工作几个小时,但是在一段时间不使用后,对每个 MVC 视图的第一个请求会在 3-5 秒内响应。

我们已将网站配置为"始终打开",并且在 IIS 日志或添加到Application_Start的日志记录中找不到任何内容。因此,我们的应用程序似乎至少没有回收利用。我怀疑某种IIS缓存被清除或某些Ef缓存?欢迎任何建议。

您需要为 Web 应用启用"始终开启"设置。

可以从 portal.azure.com ->站点的边栏选项卡 -> 配置 ->常规设置 -> 始终开启

详情请看这里:https://azure.microsoft.com/en-us/documentation/articles/web-sites-configure/

禁用 Always On 时,在处于非活动状态 20 分钟后,站点将被删除,以便为可能在同一应用服务计划上运行的任何其他站点释放资源。

我一直遇到同样的问题,不幸的是,"始终在线"设置在免费和共享定价层上不可用。我找到了一种简单的方法来保持 Web 应用程序温暖,这样它就不会卸载。诀窍是针对 Wep 应用程序 URL 设置一次 15 分钟的应用程序见解 ping 测试。有关如何执行此操作的演练,请参见此处

一个快速的解决方法是创建一个后台作业,该作业将频繁地 ping 您的网站以避免 webApp 的空闲状态。

尝试升级 Sql Server db 计划并相应地进行测试。

祝你好运,希望这有帮助。

您是否尝试通过启用失败的请求日志记录来调查此问题?

Azure 门户→应用服务→监视→诊断日志→失败请求跟踪(打开)

我遇到了类似的问题,该问题是由于使用 web.config 中的ipSecurity部分限制对应用程序的访问而导致的。如果碰巧以这种方式限制访问,则需要将应用服务的 IP 列入允许列表。

相关内容

最新更新