2011-06-27 48 views
4

我們發佈了基於.Net的網站,該網站在Windows Server 2008 R2 Standard Edition上運行IIS 7.0。否則,我在不同的服務器上安裝了SQL Server。 IBM x3650服務器都具有32 Gb RAM。有時,使用20 GB的IIS上的內存的w3wp.exe服務。我該怎麼辦?w3wp.exe內存使用問題

謝謝,

+0

是記憶中的時間增加了多少?你可以做的是監視內存使用量,然後嘗試找出內存使用率增加和作業之間的關係。事件?在特定時間執行,以查明內存泄漏。 – ub1k

+0

ub1k-正如你所說,是增加。 – Selo

+0

雖然問題是關於內存不足異常,但同樣的原則適用:http://stackoverflow.com/questions/6305172/system-outofmemoryexception-due-to-asp-net-worker-process/6307393#6307393 – Kev

回答

0

那麼再次。這是一個難以發現內存泄漏的問題。首先根據您獲得的每個請求進行一些日誌記錄 - >並記錄正在使用的內存量。然後找到你所有的工作 - >和可能產生泄漏的代碼部分(只要它們在每個請求期間不執行),並記錄它們的開始和結束。

當你這樣做後,你可以檢查你的日誌並搜索內存使用量顯着增加的部分,然後你可以確定你的代碼的哪部分產生了泄漏。

另一件事是你可以搜索「內存泄漏你使用什麼」在哪裏你使用的是你正在使用的一些機制,無論它們可能是什麼。

另一方面,你應該做很多事情來避免內存泄漏,首先我想到的是探索using()聲明。

哦。不要以爲你會在接下來的20分鐘內發現問題。這將需要幾天(當試圖用日誌記錄進行調試時)

+0

嗨, 感謝您的反饋意見。我想我的問題需要更清楚。我不認爲我有內存泄漏。內存在加載圖像時高達140,000k,然後再次下降到130,000k。我只是想知道是否通過獲取更多的RAM是否對w3wp內存緩存產生影響。我假設這個過程在加載時上升,並在垃圾回收開始時停止?我只是猜測,因爲我正在學習IIS管理,因爲我鍵入:) –

2

你有沒有機會使用URLRewritingNet來重寫你的URL? 我在使用IIS7的Windows Server 2008 R2上遇到了一個嚴重的性能問題,導致w3wpe.exe最大化,即使有一個用戶!解決方法是取消該庫並使用IIS7重寫規則。

的問題是非常漂亮,這裏記載:http://blog.kurtschindler.net/post/urlrewritingnet-performance-issues

祝你好運, 大衛

+0

嗨,非常感謝你的鏈接。我沒有使用URL重寫,現在可能永遠不會:) –