我们有一个包含20多个应用程序的Azure应用服务计划。
其中一个应用程序导致端口耗尽。因此,定价计划中的所有应用都会失去连接性。
技术支持表明当端口耗尽时,TIME_WAIT状态TCP连接占主导地位。为帮助诊断和监控此情况和未来情况,我想要一种获取每个应用程序的TCP连接和状态的一般方法。
这可能吗?如果是这样的话?
答案 0 :(得分:6)
我意识到这不是你问题的直接答案,但我们有类似的问题,并发现我们使用HttpClient是一个促成因素。如果您为每个HTTP请求使用新的HttpClient实例,则可能会耗尽可用的出站连接。我们发现以下文章对于使用HttpClient最小化出站连接数非常有用:https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/
我们也希望有一种方法来查看来自Azure应用服务的TCP连接,因为Kudu显示"访问被拒绝"当试图使用netstat。
答案 1 :(得分:0)
这是现在很流行的问题。为了增加一些额外的信息,调查的结果是一个应用程序使用的是带有某种错误的MySQL客户端库。它没有正确关闭TCP端口。这杀死了整个计划。与Azure技术支持人员交谈之后,他们同意应该改善Azure门户中TCP连接的报告。从那时起,我一直没有检查是否有任何改进。