2011-10-06 61 views
0

我有一個現有的asp.net應用程序工作了幾個月沒有問題。W3WP.exe - CPU峯值達到100%,然後下降到0%,導致性能下降

問題

突然,(新的代碼發佈後)一次每隔一兩天,CPU開始去從100%的利用率爲0%,而且來來回回,每隔幾秒鐘。

發生這種情況時,aspnet請求正在排隊,執行時間和等待時間急劇增加。

重新啓動WWW發佈服務「解決」了這個問題(大概一天左右)。搶先重啓服務也有幫助。

我在事業

由於這個猜測開始了新版本之後,我責怪新的代碼,但是我正在尋找的線索可能是什麼。我最好的猜測是內存泄漏但w3wp.exe的內存使用永遠不會超過6.5GB,並且有足夠的物理內存,並且我在會話中存儲了大量內容。

任何人都可以提供線索嗎?

調試IIS是一項艱鉅的任務,我也沒有什麼經驗,所以我希望別人有類似的問題,並可以提供線索。

一些更多的音符/線索 當這個問題的時候重新啓動WWW服務,服務的停止需要很長的時間。好兩分鐘。

+0

100%峯值在它消失之前持續了多久? 「 – driis

+0

」100%秒殺消失多久?「 - >最多隻需幾秒鐘。但應用程序放慢速度非常明顯和空間 –

+0

爲什麼你會認爲內存泄漏會導致CPU峯值?聽起來好像有一個循環在某處失去控制.. – Erix

回答

0

w3wp.exe是IIS的一部分,但實際上並沒有做太多工作。 100%的CPU使用率來自該進程中運行的代碼。這是你的的代碼。

如果你有空閒內存,那麼任何內存泄漏都無所謂。暫時忽略內存泄漏。

您可以在開發機器上重現此問題嗎?如果是這樣,那麼您需要在應用程序運行時對其進行概要分析,以便了解應用程序在哪裏花費時間。

+0

謝謝約翰。我想我必須這樣做。不能說我很期待它:) –

+1

不期待什麼?性能分析可能非常酷。分析器可以給你關於你的代碼的答案,你不是問題。 –

+0

至少有一種方法可以在.net進程中耗盡內存,但仍然看起來像有空閒內存可用。 http://blogs.msdn.com/b/yunjin/archive/2004/01/27/63642。aspx這顯然不是這裏的問題,因爲它會導致OOM錯誤。 – BNL