Azure中托管的ASP.Net Web API高响应时间

问题描述 投票:0回答:1

我有一个Web API,它是P3V2应用服务计划下的Azure应用服务。有时响应时间过长(超过1分钟),并且应用程序挂起。我已启用自动缩放多达5个实例,该实例在响应时间大于5秒时触发。

但是当我分析故障发生时的过去数据时,发现横向扩展无法解决此问题。原因是,同一件事多次发生,但API没有挂起。

然后,我试图找到与此问题相关的任何指标。我发现Handle count在API挂起之前变高。以下指标也在大约同一时间增加:

  • 响应时间-超过1分钟
  • Http服务器错误-高
  • CPU时间-正常

这些快照是在同一时间范围拍摄的。

响应时间

Repsonse times

句柄数

Handle count

重新启动应用程序服务后,API可以正常工作。当我不这样做时,它仍然没有响应。

任何人都可以帮助找到原因吗?

更新1:

[多个应用正在同一应用服务计划中运行。这些应用之间存在外部依赖关系。我正在使用Azure存储,Azure服务总线和Azure SQL数据库。

而且我还注意到建立的TCP很高

TCP Established

我需要提及的另一点;当我监视实时指标时,发生挂起时它没有从应用程序接收见解。

performance azure azure-web-app-service azure-app-service-plans
1个回答
0
投票

似乎是您的代码有问题。就像提到的@rickvdbosch一样,检查您的依赖项时序,例如数据库操作,服务总线写操作等。还要检查您是否遇到了死锁/无限循环,详尽的正则表达式。

帮助分析的一种方法是将应用程序见解SDK安装到您的应用程序中。然后,您可以详细评估每个API调用,并准确了解哪些代码执行时间最长。

App Insights --> Performance --> (select a operation)-->samples

App Insights->性能->(选择一个操作)->示例

© www.soinside.com 2019 - 2024. All rights reserved.