[英]How do you increase the number of threads used by .NET Remoting over TCP?
我們正在嘗試通過TCP增加.NET Remoting使用的線程數。 我們嘗試更改ThreadPool.SetMinThreads,但是我們的壓力測試顯示.NET Remoting只能處理大約100個並發請求。 (但這不是硬限制)。 在任務管理器中,我們可以看到我們的遠程處理服務器進程線程數從11增加到大約80,然后在壓力測試后下降到11。 我們正在運行ASP.NET 4.0應用程序。
總結一下。 遠程服務器由IIS服務和遠程客戶端由IIS托管。 要進行壓力測試,請使用Apache Bench調用遠程客戶端調用遠程服務器。 您發現遠程服務器處理的並發請求不超過100個,盡管您增加了遠程服務器上線程池中的最大線程數。
如果我所說的都是真的,我認為這里缺少一件事,即IIS也有一個可用於處理請求的線程限制。 您可以從Apache Bench向遠程客戶端發送1000請求,但僅限於,例如,其中100個將同時處理。 我懷疑這可能是一個原因。
為了增加IIS的線程數,我建議您嘗試:
SetMinThreads
。 我方的最后一點評論是你必須記住,線程池中線程數量太少,線程數量太多也不好。 兩種情況都會影響性能。
檢查SetMinThreads的返回值 。
如果指定負數或大於活動線程池線程的最大數量(使用GetMaxThreads獲取),則SetMinThreads將返回false並且不會更改任一最小值。 ( 鏈接 )
你確定瓶頸是線程,而不是網絡連接..? 默認情況下,.net每個遠程IP可用的插槽數量相當有限。 這適用於遠程處理,http(WCF,Web服務客戶端)等。
您可以在app config / web.config中的system.net/connectionManagement下覆蓋此項,如果這是您所看到的,例如:
<configuration>
...
<system.net>
<connectionManagement>
<add address="*" maxconnection="1000"/>
</connectionManagement>
</system.net>
有關該配置設置的更多詳細信息,請訪問: https : //msdn.microsoft.com/en-us/library/fb6y0fyc%28v=vs.110%29.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.