簡體   English   中英

Azure和本地TCP連接數非常不同

[英]Azure and local number of TCP connections are very different

我現在正試圖使用​​Azure功能並行讀取大量Azure blob中的數據,但由於我的服務計划不允許超過~4000 TCP連接(我在門戶網站中收到錯誤),但是,當我嘗試在本地運行以下所有內容時:

  • 帶有所有可能標志的netstat
  • Wireshark的
  • 套裝軟件
  • Windows任務管理器中的網絡檢查器

只顯示幾十個項目。 是否有工具或代碼片段允許我在本地模擬我的應用程序部署后的情況?

更好的是知道是否有可能以某種方式限制我的Azure功能嘗試打開的TCP連接數(使用.NET Azure SDK,或Azure門戶,或某些settings.json文件或其他)

編輯1 :我已經把整個事情重寫為順序,並且我將blob讀取分成了100項目的塊,這似乎有點幫助了TCP連接的數量(現在它的峰值大約為500 ,所以仍然很多,但是至少適合應用服務計划,應用程序,當然,結果變得緩慢),但它仍然試圖分配~4000的“套接字句柄”並失敗,仍然找不到一種方法來看到本地分配相同數量的套接字句柄 - Handles列是Windows任務管理器的Details選項卡在整個過程執行期間顯示大致相同數量的handles

回答問題本身:我無法找到一種方法來本地查看在Azure中實際運行我的函數時獲得的TCP相關指標。 目前感覺缺少一些重要的開發工具和/或文檔。 “無服務器”體驗成為我作為.NET開發人員所擁有的最深入的Windows系統編程。

問題本身的解決方案如下:我已經將整個事情重寫為順序並管理它以建立大約一百個同時連接。 然后我只使用MaxDegreeOfParallelism進行二元搜索,直到找到適合我計划的值。

您可能會遇到HttpClient中的HTTP標准實現,默認情況下會將打開的連接數限制為2。 HTTP / 1.1規范將應用程序的連接數限制為每台服務器兩個連接。 您可以使用ServicePointManager的DefaultConnectionLimit屬性覆蓋該默認值。 微軟在這里有一篇文章

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM