Azure 应用服务 TCP/IP 端口耗尽

Fis*_*her 6 azure azure-app-service-plans

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

TCP/IP 端口接近耗尽 您包含应用程序 ****** 的应用程序服务计划配置为使用中型实例。该应用服务计划中托管的应用程序正在使用每个介质实例可用的 4096 个可用 TCP/IP 端口中的 90% 以上。您可以升级实例大小以增加出站连接限制或配置连接池以更有效地使用。

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

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

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

小智 5

是的,应用服务计划的限制(扩大)存在差异:

最大连接限制如下:

每个 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/


小智 1

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

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

阅读下面的内容: 重用 HttpClient