2009-10-30 18 views
1

什麼會導致IIS工作進程無法控制地增長?什麼會導致IIS工作進程無法控制地增長?

我有一個錯誤,如果我帶一個頁面並加載它,有時它不會添加內存,少量內存(250k-2MB)或非常大的內存量(10MB-30MB)。我不知道是什麼導致了這一點,但如果你可以集思廣益可能會導致這種行爲,我會很感激。

編輯

那麼顯然你不能緩存.NET控件並從緩存中拉它,沒有它莫名其妙地泄漏內存。我試圖緩存每次從緩存請求時導致內存上升的菜單控件。在這種情況下,解決方案是將項目放入數組或字典中並緩存,然後在頁面加載時重新創建項目。這解決了內存泄漏,這就是爲什麼我找到它很麻煩。

+0

它增長無界限?還是在某個時候停止增長? – 2009-10-30 14:09:08

+0

它增長無界限。相同的頁面,增長變量,似乎沒有限制。 – Middletone 2009-10-30 14:42:59

回答

1

可能是一大塊原因。可能你正在創建額外的會話,以便分配更多的內存,你沒有清理代碼中的某些對象,必須重新連接到數據庫而不是重用它,分配額外的內存以吸收預期的負載(如果您正在點擊在很短的時間內,你可能會觸發一些主動的內存管理?)...並且列表繼續。

它每次都在吞噬同樣的東西嗎?過程是否會增長和增長?

這只是一個頁面嗎?你是否創建了一個空白頁面並進行監控,如果這樣做?然後嘗試評論你的問題頁面的各個部分,看看你是否可以隔離該程序?切換跟蹤開啓,並觀看什麼叫什麼時候?任何嫌疑犯?

很多地方看...也可能是woth上serverfault.com發佈此過也

3

不知道你的應用程序做什麼它是一種很難說,如果你有泄漏或任何這是否僅僅是應用程序的自然工作內存使用。

你可能想運行通過內存分析器應用程序,如紅門Ants Memory Profiler

而且Tess Ferrandezdebugging memory leaks一些偉大的文章。

0

你可以發佈頁面的代碼,或至少一個片段的頁面的加載和初始化?
這裏有一些步驟,可以幫助:

  1. 要報告通話的第一點可能是你打電話檢查什麼初始化過程可能與這些相關的靜態資源或方法的審查不同的結果。
  2. 檢查您的應用程序是否是唯一使用該特定應用程序池並且沒有其他人連接的應用程序。
  3. 確保您沒有附加調試工具。 檢查您的代碼並確保所有循環都正確退出,您沒有遞歸進行,並且所有資源始終可以訪問且本地。

也許這會有所幫助,但是很難說沒有看到你使用的代碼。

乾杯

相關問題