Iis

應用程序池無故回收

  • December 10, 2014

我們的其中一台生產伺服器(Windows 2003 伺服器)出現問題。似乎所有應用程序池每 10 秒左右(同時)回收一次。不用說,這會對應用程序的性能產生負面影響。

症狀:

  • 應用程序記憶體失去

  • 應用程序啟動程式碼中的調試語句正在觸發

  • 後台執行緒停止

我發現的其他事情:

  • 令人驚訝的是 w3wp.exe 程序保持穩定

  • 該電腦上沒有執行防病毒軟體

  • 試圖通過添加<httpRuntime waitChangeNotification="1000000" />和添加<compilation numRecompilesBeforeAppRestart="100000" />到其中一個應用程序來禁用文件更改通知,但它沒有幫助

  • 事件中沒有任何可疑之處查看器

不知道還有什麼可以在這裡嘗試的。

您需要啟用 IIS 健康監控日誌記錄。它在應用程序事件日誌中記錄重新啟動的原因。您不應該禁用文件更改通知,因為網站中根本不應該有任何更改。創建/修改/刪除的任何文件/數據都應位於網站文件夾結構之外。

這現在已內置到 IIS 7 中的應用程序池 gui。要在 IIS 6 中啟用此功能,您可以將相關資訊添加到 web.config。您特別想記錄“應用程序生命週期事件”。

 <system.web>
   <healthMonitoring enabled="true" heartbeatInterval="1">
     <rules>
       <add name="HeartBeat" eventName="Heartbeats" provider="EventLogProvider" profile="Default" minInstances="1" minInterval="00:01:00" maxLimit="Infinite"/>
       <add name="App Lifetime" eventName="Application Lifetime Events" provider="EventLogProvider" profile="Default" minInstances="1" minInterval="00:00:00" maxLimit="Infinite"/>
     </rules>
   </healthMonitoring>
 <system.web>

使用健康監控事件

http://msdn.microsoft.com/en-us/library/ms228103.aspx

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