4

我最近收到了来自 Azure 的“建议”,关于在我的应用服务中达到 TCP/IP 端口的上限。

TCP/IP 端口接近耗尽 您的应用服务计划包含应用 ****** 配置为使用中型实例。该应用服务计划中托管的应用使用了每个中等实例可用的 4096 个可用 TCP/IP 端口中的 90% 以上。您可以升级实例大小以增加出站连接限制或配置连接池以提高使用效率。

应用服务计划的限制(纵向扩展)是否存在差异?或者我可以配置我的应用服务以使用更多端口吗?或者还有其他解决方案吗?

一个明显的解决方案是横向扩展,但由于 CPU 和内存使用率很低,如果不是必须,我宁愿不使用此选项。

作为背景,该服务是使用 .Net 4.6 使用 ASP.NET Core MVC 构建的 API。

4

2 回答 2

3

是的,应用服务计划的限制有所不同(纵向扩展):

最大连接限制如下:

每个 B1/S1/P1 实例 1,920 个连接 每个 B2/S2/P2 实例 3,968 个连接 每个 B3/S3/P3 实例 8,064 个连接

关于:其他服务(Cassandra、MSSQL、RabbitMQ 等),但我也不确定这些连接计数 此服务调用也会导致 TCP 连接创建,也需要计算在内。

Azure 中的大多数服务都有自己的诊断和仪表板,我们可以在进行调试时关联它们,例如在我的情况下,MSSQL DTU 不足以容纳并发请求的数量,因此连接正在堆积。

资源:

https://blogs.technet.microsoft.com/latam/2015/06/01/how-to-deal-with-the-limits-of-azure-sql-database-maximum-logins/

https://blogs.msdn.microsoft.com/appserviceteam/2018/03/01/deep-dive-into-tcp-connections-in-app-service-diagnostics/

于 2018-12-14T02:41:44.590 回答
1

通常我们在 .NET 中进行调用后进行实例化和处理,但是 HttpClient 类有一个陷阱,因为我们应该在应用程序的整个生命周期中重用同一个类。

Azure 端口在其计算环境中受到限制,因此与标准服务器相比,您会更快地体验到这一点。

阅读以下内容: 重用 HttpClient

于 2018-04-23T14:26:23.020 回答