You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何所有App Service请求均流向同一实例?已配置4实例未实现负载均衡

Azure App Service Plan多实例流量分配异常问题

我已将App Service Plan配置为包含4个实例,在此计划中托管了1个Web应用和1个Node.js API。手动设置实例数为4并等待约1小时后,我执行了负载测试,却发现只有1个实例被访问。

已完成的配置

  • 将session affinity设为OFF
  • 负载测试使用4个实例,每个实例对应100个用户,已启用公网流量
  • 将App Service Plan实例数设为4

我认为这些配置已足够让流量均匀分配到4个实例,但实际并未实现,请问我遗漏了什么?

更新1:缩放配置截图

手动缩放配置为4个实例

更新2:负载测试结果截图

负载测试仅单个实例有流量
再次执行负载测试,结果相同——仍只有1个实例被访问。


排查方向与解决方案

  1. 启用应用预热配置
    新实例完成初始化前无法接收流量,若未配置应用预热,Azure会将流量集中到已就绪的旧实例。
    解决:针对Node.js应用,可通过applicationHost.xdt配置启动钩子,或在Azure门户开启"始终开启"(Always On)避免实例休眠,确保实例启动后立即就绪。

  2. 校验负载测试请求的无状态性
    即使session affinity设为OFF,若负载测试工具自动复用Cookie或请求头带有固定标识,仍会导致流量绑定到单个实例。
    解决:在负载测试中禁用Cookie持久化,确保每个请求的请求头无会话关联信息。

  3. 确认实例运行状态
    登录Azure门户,进入App Service的"实例"页面,检查4个实例是否均处于运行中状态。若存在启动中或异常实例,流量不会分配过去。
    解决:重启异常实例,等待所有实例状态正常后再执行测试。

  4. 检查定价层与资源限制
    若使用基础层(B系列),需确认实例未达到CPU/内存限制,否则负载均衡器会减少该实例的流量分配;免费/共享层不支持真正的多实例部署。
    解决:升级至标准层(S系列)或更高,同时监控实例的资源使用率,优化应用代码减少资源消耗。

  5. 验证负载均衡策略
    Azure App Service默认轮询分配流量,但如果个别实例响应时间过长,会被暂时排除。查看应用监控中的"实例响应时间""CPU使用率"指标,确认所有实例性能一致。
    解决:优化应用启动逻辑,避免实例启动后出现长时间初始化操作;调整应用的资源配额,确保实例性能达标。

内容的提问来源于stack exchange,提问作者Stefan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 05:15:10