开启Always On后Azure App Service(B1计划)API仍休眠问题咨询
Azure App Service B1开启Always On仍遇冷启动的排查与解决
确认Always On的生效边界
Always On仅保证App Service实例本身不被休眠,但如果你的API依赖的后端服务(比如数据库、第三方API)有闲置超时/休眠机制,首次请求还是会触发这些依赖的冷启动,拖慢整体响应。检查所有依赖资源的闲置配置,比如Azure SQL的自动暂停、缓存服务的超时设置等。排查APIM层的连接问题
直接访问App Service的原生域名(绕开APIM),观察是否同样出现5分钟后延迟的情况:- 如果直接访问正常,说明问题出在APIM:调整APIM的后端连接池配置,启用连接保持活跃,或者配置定期健康检查请求,维持APIM到App Service的连接不被释放。
- 如果直接访问也有延迟,问题回到App Service本身。
考虑基础层计划的资源限制
B1属于基础层,Azure对这类实例的资源调度更灵活,长时间闲置后可能被降配到低资源状态,首次请求需要重新分配CPU/内存。可以临时升级到S1标准层测试,若问题消失,说明是基础层的资源调度限制导致。配置应用预热逻辑
即使Always On开启,应用的初始化逻辑(比如DI容器构建、数据库连接池初始化)可能仅在首次请求时执行。可以:- 添加一个预热端点(比如
/api/warmup),在端点内执行必要的初始化操作; - 在App Service配置中启用预热功能,指定该端点为Always On的探测地址,让实例提前完成初始化。
- 添加一个预热端点(比如
查看诊断日志定位根因
开启App Service的诊断日志,重点查看冷启动发生时的应用事件日志和HTTP日志,确认是应用池回收、实例重启还是初始化逻辑耗时导致的延迟,针对性解决。
内容的提问来源于stack exchange,提问作者Chris K
相关产品推荐
相关产品推荐

