2009-11-21 26 views
2

我們目前在我們的IIS7 Web服務器上運行了一個Live ASP.NET應用程序(基本上是CMS)。在IIS7中調試已經運行的ASP.NET站點

每一次,一段時間(每隔幾個月說話)它的應用程序池將達到100%的CPU使用率,呆在那裏,直到出了頁面倍。我們已經嘗試將web.config中的頁面超時增加到30分鐘,但它仍然停留在完整的CPU中,因此我假設它是某種形式的無限循環。

這是一個龐大的應用中,我們最大的一個,和過於龐大盲目搜索的問題。普遍的看法是,由於它非常罕見,我們可以在應用程序池重啓時重新啓動,但我更願意修復它。

我可以訪問代碼和託管服務器的完全管理員權限,而且我們正在運行的監控軟件給了我足夠的時間來在服務器上,而問題正在發生,但我無法找到任何獲取有關當時情況的有用數據的方式,而不會增加網站的大量持續開銷(因爲需要幾個月才能發生這種情況並非真正可行)。

我想知道如果有人對我如何縮小搜索範圍有一些建議嗎?當前正在運行的線程的堆棧跟蹤將會很壯觀,但即使只是一個正在服務的頁面列表也會產生巨大的差異。我可以將代碼添加到項目中以使其更易於追蹤,但將所有內容記錄到捕獲它的希望中都是不現實的(它獲得大量流量,並且我們不希望爲頁面加載增加大量的開銷)。

回答

4

苔絲的博客是調試生產asp.net應用程序的極好資源。
我認爲從她的博客這篇博客文章將有助於開始調試此問題: Hang debugging walkthrough
希望這有助於

+0

這看起來非常有前途,謝謝!我會爲此添加書籤,並在下次發生問題時給它一個提示。 – fyjham 2009-11-21 06:45:49

+0

苔絲的博客只是搖滾! – 2009-11-24 05:29:08

0

我建議你使用ASP.Net性能計數器,(如請求隊列和請求的數量)

+0

我已經相當有信心,這不僅僅是由於所討論的網站的性質以及尖峯的零星性質以及單個IIS重啓立即解決問題的事實而造成的。 – fyjham 2009-11-21 06:35:45

+0

我只是給你一個你可以使用的性能計數器的樣本 – 2009-11-21 07:51:12