【发布时间】:2020-02-18 09:17:27
【问题描述】:
我有一个 Web API,它位于 P3V2 应用服务计划下的 Azure 应用服务中。有时响应时间太长(超过 1 分钟)并且应用程序挂起。我已启用 Auto scaling up to 5 instance,当响应时间大于 5 秒时触发。
但是当我在故障发生时分析过去的数据时,我发现向外扩展对这个问题没有帮助。原因,同样的事情发生在多个场合,但 API 没有挂起。
然后我试图找到与此问题相关的任何指标。我发现 句柄计数 在 API 挂起之前就变高了。以下指标也在大约同时增加:
- 响应时间 - 超过 1 分钟
- Http 服务器错误 - 高
- CPU 时间 - 正常
这些快照是在同一时间范围内拍摄的。
响应时间
句柄计数
重启应用服务后,API 工作正常。如果我不这样做,它仍然没有响应。
谁能帮忙找出原因?
更新 1:
多个应用在同一个应用服务计划中运行。这些应用程序之间存在外部依赖关系。我正在使用 Azure 存储、Azure 服务总线和 Azure SQL 数据库。
我还注意到 TCP 已建立很高
还有一点需要提一下;当我监控实时指标时,发生这种挂起时它没有收到来自应用程序的见解。
【问题讨论】:
-
这看起来您的应用程序可能有问题。您应该查看 API 外部依赖项的可用性,例如数据存储。另外,您是否正在呼叫外部服务?如果是这样,您是否使用
HttpClient? -
@rickvdbosch 是的,当我更新时,我正在使用 azure sql server、azure storage、服务总线
标签: performance azure azure-web-app-service azure-app-service-plans