2013-10-03 72 views
0

今天,我想出了一些與我們的網站非常相似的東西。 我們有性能問題。 IIS 7.5(Windows 2008)上的Asp.NET Mvc網站每隔X次都會凍結。 它是一個正常的電子商務系統,連接到相同的Infastructure上的MSSQL服務器。 但是當您進入產品的詳細頁面時,我們通過AJAX在頁面加載後詢問庫存, 我們有2個倉庫,我們必須詢問庫存。當連接到外部數據庫時,ASP.NET Mvc網站凍結

今天其他倉庫了服務器的問題,從我們的電子商務網站在此服務器(與1個查詢外部方便地連接到詢問股票)的連接得到已逾時該服務器發出的每個連接。但正如我所說,這個外部服務器並沒有涉及更多的Ajax調用查詢。

奇怪的是,建立到此外部服務器的連接時,所有用戶(整個IIS池)都會被凍結。連接超時後,所有的請求都會被處理,但直到那時纔會處理。

這是正常的嗎?我認爲所有的請求都是在自己的「線程」中完成的。 P.D.它不是一個鏈接服務器或其他東西。它直接連接到那裏和1個查詢,僅此而已。

一些建議嗎?

+0

連接池可能會得到充分時,它等待超時。它默認爲100個活動連接。 http://msdn.microsoft.com/en-us/library/8xx3tyca.aspx –

+0

它是一種不同的連接池(不一樣的電子商務CnString) –

+0

看性能計數器,用於連接池的時候,你所觀察的行爲。 http://msdn.microsoft.com/en-us/library/ms254503%28v=vs.100%29.aspx –

回答

0

很多由於體系結構的非常一般的描述和提供的有限的診斷信息,這可能發生的原因。

但是,有一點想到,值得檢查。有only so many IIS worker threads and completion ports可用。如果所有(或非常多)工作線程最終等待失敗的連接,則不會有(或很少)工作線程可用於處理其他請求。

如果你可以(通過例如故意錯誤配置的連接)重現該問題在開發或質量保證,你可以嘗試診斷IIS的狀態。看看這個指導:

http://www.orcsweb.com/blog/terri/troubleshoot-iis-application-hangs-unresponsiveness/

+0

在開發中它沒有發生(IIS Express)。通過錯誤的連接重新生成場景,並嘗試建立連接時,其他請求得到處理沒有任何問題。 IIS上的WorkerThreads沒有達到Max,因爲據我所知,它會用503狀態碼作出響應。 –