Windows-Server-2008
為什麼 IIS 每 15 分鐘回收一次我的應用程序池?
今天,我們的 ASP.NET MVC IIS 7 Web 應用程序擁有大量使用者。
我注意到大約。每 15 分鐘,應用程序池程序被殺死並啟動一個新程序。
我沒有找到任何具體原因。我可以想像達到了記憶體限制,但我找不到驗證這一點的方法。
應用程序池具有預設設置。
所以我的問題是:
- 我可以在某處閱讀(事件日誌嗎?)為什麼應用程序池被回收?
更新 1
這是時間的記憶。似乎當它執行到 12 GB(伺服器的物理記憶體)時,程序被殺死:
一個假設也是,對於每個使用者,該使用者的會話佔用了一些 RAM 字節,因此當新使用者進入系統時,記憶體變得越來越大。
要回答您的具體問題,是的,您可以在 Windows 系統事件日誌中查看應用程序池回收事件。過濾事件源“WAS”。
預設情況下,僅記錄以下回收原因;
- 超出專用記憶體限制
- 定期時間間隔
- 超出虛擬記憶體限制
您可以更改預設值並為其他回收事件啟用日誌記錄
Application Pool | Advanced settings | Recycling | Generate Recycle Event Log Entry
預設情況下,應用程序池不會因虛擬記憶體限製或私有記憶體限製而回收(預設限制設置為 0 = 從不)。