我們創建了ASP.NET MVC app
,它接受file upload
(最多80MB)並且有result pooling implemented by AsincController
。託管在Windows 2008 R2 IIS7.5 .NET 4.服務器2內核2.6GHZ,2GB內存,快速硬盤。文件上傳和結果池殺死ASP.NET web應用程序
該網站擁有衆多用戶和性能監視器顯示ASP.NET Requests/Sec ~15
和Request Current ~270
幾分鐘ASP.NET開始queuing request
和ASP.NET Request Queued
計數器開始增長,應用程序變得非常慢後。我正在尋找這個問題將近一個月,試圖分析代碼,沒有性能問題,也沒有內存泄漏。增加了maxWorkerThreads to 400
和maxIoThreads to 400
。設置maxConcurrentRequestsPerCPU to 5000
和MaxConcurrentThreadsPerCPU to 0
但這或沒有幫助。
看起來有所幫助的一件事是增加應用程序池最大工作人員進程到兩個或三個進程並製作應用程序池網絡花園。之後,請求當前跳轉到〜350並且沒有請求排隊。但網絡園引入了幾個我們在這裏不會提到的新問題。
請發表任何建議如何我們可以提高應用程序的性能,而不使我們的應用程序運行在IIS池網站花園?