0
我有一個ASP.NET Web Api應用程序,實體框架6在2個額外的大型實例上運行。Web Api實體框架6高CPU使用率和應用程序掛起
這是之前的兩個大案例,但一段時間後我面臨着IIS 503錯誤。
問題是:使用此api的應用程序會每隔10秒從每個連接的客戶端發出請求。我們已經連接了5k個同時連接的客戶端,每10秒調用一次api。兩個實例的CPU都是40%(我認爲它仍然很高)。
現在應用程序支持負載。然而,我們可以達到20k客戶端,我不知道我還能在代碼中改進什麼。
每10秒調用一次的方法是異步的。
public async Task<ExampleContract> Post(ExampleRequest example)
{
try
{
return await _localizacaService.ExampleAsync(example);
}
catch (DataException ex)
{
throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message));
}
}
的Windows 2008 IIS 7.5 唯一的IIS設置我已經改變了在隊列限制,從500到5000
是其他任何東西,我可以做什麼?
任何幫助將非常感激
你好同行。 發佈問題後,我發現這個鏈接,詳細說明你說的:http://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on- iis-7-0-and-6-0.aspx 我知道不建議在如此短的時間內處理這些數量的請求。我需要儘快尋找替代品,例如網絡套接字。 您認爲將maxConcurrentRequestsPerCPU和requestQueueLimit設置爲10000(默認大小的兩倍)是合理的嗎?我問,因爲我還沒有嘗試過。實際上,我添加了第三個實例,現在它正在工作。但需要儘快嘗試。 再次感謝您。 – otaviosoares 2014-12-03 16:32:37