回答:
アイドルタイムアウトは、Webアプリからアクションが要求されていない場合、プロセスはすべてメモリをドロップして解放します
リサイクルは、メモリリークの目的とシステムの正常性のために、処理されたアプリケーションが閉じられて再起動される強制的なアクションです。
両方のマイナスの影響は、通常、リサイクルを高速化すると、セッションとアプリケーションの状態の使用が失われることです(すべての「チェックアウト」しようとしていた場合、ログインしたユーザーなどはログアウトされます。失われた」という理由で、リサイクルは非常に大きなタイムアウト値になり、アイドルタイムアウトは問題になりません。とにかく誰もログインしておらず、まだ「ショッピング」していないアクションが20分間ないためです。
20分ごとに1人のユーザーがいる場合にユーザーがロードするのを待たなければならない非常にアクティブなサイトではない場合、Webサイトは「最初の」応答でより速く応答するため、アイドルタイムアウトが解消されます。いう。つまり、20分に1回未満の時間しか得られないWebサイトでは、ユーザーごとにWebサイトを最初から再度ロードする必要があるため、この値を増やす必要があります。ただし、これを長期間にわたって0に設定すると、コード内のメモリリークが一定の期間にわたって発生し、サーバーを完全に引き継ぐ可能性があります。
ここから:
システムリソースを節約する1つの方法は、アプリケーションプールのワーカープロセスのアイドルタイムアウト設定を構成することです。これらの設定が構成されると、ワーカープロセスは、指定された期間非アクティブになるとシャットダウンします。アイドルタイムアウトのデフォルト値は20分です。
また、IISのデフォルトのアプリプールのリサイクルが1740分に設定されている理由を確認してください。
サーバー上に少数のサイトがあり、それらを常に高速でロードしたい場合は、これをゼロに設定します。それ以外の場合、トラフィックがない状態で20分経過すると、アプリプールは終了し、次回のアクセス時に再び起動できるようになります。問題は、アプリプールへの最初のアクセスで新しいw3wp.exeワーカープロセスを作成する必要があることです。これは、アプリプールを作成する必要があり、ASP.NETまたは別のフレームワークをロードする必要があり、その後、アプリケーションがロードされます。これには数秒かかる場合があります。したがって、常に実行する必要のない多くのサイトをホストするサーバーの場合を除いて、私はそれをあらゆる機会に0に設定します。