簡體   English   中英

應用程序池回收中奇怪的內存增加

[英]Weird memory increase on application pool recycle

我想描述一下我在生產中分析asp.net應用程序時發現的奇怪問題,並就以下問題征求意見或建議。

應用程序通常以大約80-90 MB的內存占用空間運行。 由於到目前為止尚未檢測到內存泄漏,因此這似乎很穩定-隨着時間的推移,內存使用量沒有任何小幅增加。 但是,當應用程序池回收時會發生問題(我正在使用共享主機,並通過日志判斷它是在應用程序空閑20分鍾或每30個小時左右發生一次)。 問題是,在回收期間的一段時間內,使用的內存幾乎翻倍-達到160-170 MB,沒有任何解釋。 這很令人困惑,因為通常認為回收應該清除內存和所有其他資源-至少我是這樣做的。 系統將這種內存量保留了大約7-8個小時,然后內存使用率再次下降到通常的90-100 MB,沒有明顯的原因(至少我不知道)。 一直以來,應用程序似乎運行良好-沒有明顯的延遲或網站可用性方面的麻煩-對用戶而言,一切似乎都不錯,到目前為止沒有任何投訴。 查看隨時間變化的內存消耗圖-它看起來幾乎像一個階躍函數。

重要的是,我無法在測試環境中重現這種行為。 有時候,我已經從提供商管理員那里得到筆記,指出我的應用程序使用的資源超出了允許范圍,這確實使我感到煩惱。

因此,我想知道-在任何可能的情況下,應用程序池回收不會釋放所有內存資源嗎? 我應該關注什么建議或指南? 我不是該領域的專家,但我一直在閱讀有關重疊回收,序列化回收問題以及更多問題之類的東西……有什么想法嗎? 類似的經歷?

謝謝

這篇文章很好地概述了回收站點的應用程序池時發生的情況: http : //blogs.msdn.com/b/tess/archive/2006/08/02/asp-net-case-study-lost-會話變量和應用程序域回收.aspx

我的推測是,由於應用程序池每次循環之后都會進行JIT編譯,因此您的內存使用量正在增加。 我的猜測是您的共享主機與開發服務器具有不同的配置和環境設置。

恕我直言,如果您在共享主機上使用約100兆的內存,那么您是在麻煩它是像DiscountASP.NET或GoDaddy這樣的主機。 如果您完全關心該網站,請獲取VPS或其他可配置的主機,您可以在其中付費以獲取更高的內存限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM