我使用Visual Studios負載測試項目進行負載/壓力測試,當前用戶設置爲10時很低。應用程序向WebAPI服務層/應用程序發出多個System.Net.Http.HttpClient請求(在某些情況下,它會調用另一個WebApi層/應用程序),並且在測試單個MVC4控制器(不解析依賴請求)時,它只能獲得大約30個請求/秒。Asp.Net HttpClient性能
這些數字基於一個示例項目,其中沒有真正的代碼在除HttpClient調用之外的任何層執行並構建要返回的模型的新集合(所以一些序列化也發生爲WebApi的一部分)。我已經嘗試了異步控制器和沒有,結果似乎非常相似(異步控制器略有改善)
雖然數據的性質和交通手段顯然緩存調用顯着增加(大約400 RPS)相當數量的呼叫不會被緩存在真實世界的場景中。
HttpClient(或一般的HTTP層)太貴了,還是有一些想法可以獲得更高的吞吐量?
可能值得注意的是,在我的本地開發機器上,這個負載測試也使CPU最大化。任何想法或建議將非常感激?
這真的很難提供建設性的反饋意見時,有涉及到這麼多的變量,可以更改默認的連接限制。你的服務是否在同一臺機器上運行,不同的機器上,有多少網絡跳轉,你是否穿越域名等?由於您正在討論調用可調用其他Web API服務的Web API服務,因此您的請求中可能會有很多延遲。 –
我見過HttpClient在開發機器上對本地web api執行12000 reqs/sec。但是有很多因素需要考慮。 HttpClient不應該增加很多開銷。 –
示例應用程序包含一個應用程序中的所有層,所有這些層都在我的開發機器上本地運行。 它很有希望聽到你已經看到12000 HttpClient請求/秒。 – Timmo