2016-11-25 20 views
6

我們有一個包含20多個應用程序的Azure應用程序服務計劃。如何獲取Azure App Service應用程序的TCP連接狀態列表?

其中一個應用程序導致端口耗盡。定價計劃中的所有應用程序都會因此失去連接。

技術支持指示TIME_WAIT狀態發生端口耗盡時,TCP連接占主導地位。爲了幫助診斷和監視這種和將來的情況,我想要一種獲取每個應用程序的TCP連接和狀態的通用方法。

這可能嗎?如果是這樣如何?

+1

[IPGlobalProperties.GetActiveTcpConnections方法](https://msdn.microsoft.com/en-us/library/system.net.networkinformation.ipglobalproperties.getactivetcpconnections.aspx)可能返回TCP連接,但它不與Azure的工作應用服務。而Kudu調試控制檯不能讓我們運行''netstat -n''命令來顯示TCP/IP協議正在使用的活動連接。我懷疑目前它不能讓我們獲得每個應用程序的TCP連接。 –

+0

我認爲這是一個缺陷。技術支持@微軟看起來似乎也很難幫助我們的案例。我不知道如何進行診斷港口枯竭的原因。 – Sentinel

回答

3

我意識到這不是對你的問題的直接回答,但我們有類似的問題,並發現我們使用HttpClient是一個促成因素。如果您爲每個HTTP請求使用新的HttpClient實例,則可能會耗盡可用的出站連接。我們發現以下文章非常有助於減少使用HttpClient的出站連接數量:https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/

我們也希望有一種方法可以查看來自Azure應用服務的TCP連接,因爲Kudu在嘗試訪問時顯示「訪問被拒絕」使用netstat。

+1

謝謝。我將整個問題視爲Azure PaaS中的設計監督。所有其他資源使用可能導致自動縮放或警報。在這兩方面,港口消費都很差 – Sentinel

相關問題