c# - 天蓝色的Web api调用很慢
问题描述
我正在开发一个 web api,并将其托管在 azure 上,我的本地机器上的调用大约需要 2.5 秒,但当应用程序托管在 azure 中时,需要更长的时间,如下图所示:
它需要 12.8 秒,这是意料之外的,为什么会发生这种情况,红色突出显示的部分是什么?为什么从代码中的第一个操作开始需要大约 10 秒?我打开了“AlwaysOn”,所以这不是我的 api 进入睡眠状态,而且,有时调用需要更少的时间(4-6 秒),这是不一致的,请赐教。
解决方案
如果 CPU 使用率不高,一个原因可能是 SNAT 端口耗尽/挂起,如果您有太多打开的 TCP 连接(包括 SQL Server),那么新连接将等待。您可以从您的应用服务“诊断和解决问题”->“可用性和性能”->“SNAT 端口耗尽”中进行检查。
如果是这种情况,这是一个很好的起点:https ://docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/calling-a-web-api-from-a-网络客户端
推荐阅读
- javascript - 将两个列表转换为 json
- r - 响应变量超出范围 -> 在 r LOGNO 中使用 gamlss
- javascript - 如何在某些点启用垂直和水平鼠标滚轮滚动
- android - 目标 - 领域同步会话 5 分钟后断开连接,需要 2 分钟才能重新连接
- influxdb - 如何在 InfluxDB/Kapacitor 中定义异常警报
- matlab - 对齐给定图像的 RGB 通道(使用 SSD)以生成彩色且正确对齐且清晰的图像
- javascript - 如何使用来自一个站点的表单数据登录到另一个站点上的另一个表单?
- sql - 如何在不同的列上连接同一个表
- pandas - 从不同类型的熊猫中去除异常值
- python - 使用 Python 开发 Flask 应用程序时如何自动刷新浏览器?