我想描述在分析生產中的asp.net應用程序時發現的奇怪問題,並要求對以下問題提出一些建議或意見。應用程序池回收中的奇怪內存增加
應用程序通常運行大約80-90 MB的內存佔用量。由於目前爲止沒有檢測到內存泄漏,所以這看起來很穩定 - 隨着時間的推移內存使用量沒有輕微增加。然而,當應用程序池回收時(我使用共享主機並通過記錄來判斷應用程序閒置20分鐘或每30小時左右發生問題時會發生問題)。問題是使用過的內存在回收期間幾乎翻了一番 - 大約160-170 MB,沒有任何解釋。這是令人困惑的,因爲人們普遍認爲回收應該清除記憶和所有其他資源 - 至少我是這樣理解的。系統持有大約7-8小時的內存量,然後內存使用量下降到90-100 MB的平常水平,沒有明顯的原因(至少我不知道)。所有的時間,應用程序似乎運作良好 - 沒有顯着的延遲或網站可用性的麻煩 - 對用戶來說,一切似乎都沒問題,至今沒有任何抱怨。查看隨時間變化的內存消耗情況 - 它看起來幾乎就像一個階梯函數。
重要的是,我無法在我的測試環境中重現這種行爲。有時候,我從提供商管理員那裏得到筆記,說我的應用程序使用的資源比允許的多,這真讓我感到困擾。
所以,我想知道 - 是否有任何應用程序池回收不釋放所有內存資源的情況?有什麼建議或指引我應該關注什麼?我不是這方面的專家,但我一直在閱讀關於重疊回收,回收序列化問題和更多問題的任何想法......任何想法?類似的經歷?
感謝