首页 > 解决方案 > 天蓝色的Web api调用很慢

问题描述

我正在开发一个 web api,并将其托管在 azure 上,我的本地机器上的调用大约需要 2.5 秒,但当应用程序托管在 azure 中时,需要更长的时间,如下图所示:

它需要 12.8 秒,这是意料之外的,为什么会发生这种情况,红色突出显示的部分是什么?为什么从代码中的第一个操作开始需要大约 10 秒?我打开了“AlwaysOn”,所以这不是我的 api 进入睡眠状态,而且,有时调用需要更少的时间(4-6 秒),这是不一致的,请赐教。

标签: c#azureapiwebazure-application-insights

解决方案


如果 CPU 使用率不高,一个原因可能是 SNAT 端口耗尽/挂起,如果您有太多打开的 TCP 连接(包括 SQL Server),那么新连接将等待。您可以从您的应用服务“诊断和解决问题”->“可用性和性能”->“SNAT 端口耗尽”中进行检查。 在此处输入图像描述

如果是这种情况,这是一个很好的起点:https ://docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/calling-a-web-api-from-a-网络客户端


推荐阅读