Windows-Server-2008

為什麼 IIS 每 15 分鐘回收一次我的應用程序池?

  • April 20, 2015

今天,我們的 ASP.NET MVC IIS 7 Web 應用程序擁有大量使用者。

我注意到大約。每 15 分鐘,應用程序池程序被殺死並啟動一個新程序。

我沒有找到任何具體原因。我可以想像達到了記憶體限制,但我找不到驗證這一點的方法。

應用程序池具有預設設置。

所以我的問題是:

  • 我可以在某處閱讀(事件日誌嗎?)為什麼應用程序池被回收?

更新 1

這是時間的記憶。似乎當它執行到 12 GB(伺服器的物理記憶體)時,程序被殺死:

在此處輸入圖像描述

一個假設也是,對於每個使用者,該使用者的會話佔用了一些 RAM 字節,因此當新使用者進入系統時,記憶體變得越來越大。

要回答您的具體問題,是的,您可以在 Windows 系統事件日誌中查看應用程序池回收事件。過濾事件源“WAS”。

預設情況下,僅記錄以下回收原因;

  • 超出專用記憶體限制
  • 定期時間間隔
  • 超出虛擬記憶體限制

您可以更改預設值並為其他回收事件啟用日誌記錄

Application Pool | Advanced settings | Recycling | Generate Recycle Event Log Entry

預設情況下,應用程序池不會因虛擬記憶體限製或私有記憶體限製而回收(預設限制設置為 0 = 從不)。

引用自:https://serverfault.com/questions/678360