IIS:アイドルタイムアウトとリサイクル


97

IISでは、リサイクルが発生する可能性のある領域が2つ(2つ以上)あります。

  1. [プロセスモデル]セクションから[アイドルタイムアウト](デフォルトは20分)

そして

  1. 「リサイクル」セクション→「通常の時間間隔」(デフォルトは1740分)

私の質問は:

  1. 2つの方法の違いは何ですか?
  2. それらを0に設定すると、どのような悪影響がありますか?

回答:


97

アイドルタイムアウトは、Webアプリからアクションが要求されていない場合、プロセスはすべてメモリをドロップして解放します

リサイクルは、メモリリークの目的とシステムの正常性のために、処理されたアプリケーションが閉じられて再起動される強制的なアクションです。

両方のマイナスの影響は、通常、リサイクルを高速化すると、セッションとアプリケーションの状態の使用が失われることです(すべての「チェックアウト」しようとしていた場合、ログインしたユーザーなどはログアウトされます。失われた」という理由で、リサイクルは非常に大きなタイムアウト値になり、アイドルタイムアウトは問題になりません。とにかく誰もログインしておらず、まだ「ショッピング」していないアクションが20分間ないためです。

20分ごとに1人のユーザーがいる場合にユーザーがロードするのを待たなければならない非常にアクティブなサイトではない場合、Webサイトは「最初の」応答でより速く応答するため、アイドルタイムアウトが解消されます。いう。つまり、20分に1回未満の時間しか得られないWebサイトでは、ユーザーごとにWebサイトを最初から再度ロードする必要があるため、この値を増やす必要があります。ただし、これを長期間にわたって0に設定すると、コード内のメモリリークが一定の期間にわたって発生し、サーバーを完全に引き継ぐ可能性があります。


ありがとう!それは理にかなっている。私の主なジレンマは、「最初のロード」に非常に時間がかかることです。これらの両方を0に設定すれば、それを回避できると思いました。ただし、メモリリークの問題は問題です。「リサイクル」する方法はありますが、「最初のアクセス」が終了し、リサイクルの直後に完了するようにリクエストを「強制」しますか?または、リサイクルを午前2時にスケジュールしてから、「初回アクセス」を午前2時30分にスケジュールしますか?IISでそれを行う方法はありますか?
リッキー、

@Ricky私も初代年齢問題を抱えていました。:あなたはAlwaysRunningであるためにあなたのアプリケーションプールSTARTMODEを設定する必要がmsdn.microsoft.com/en-us/library/ee677285%28v=azure.10%29.aspx
スティーブ・ヒバート

これは、あまりにも私には有用であった: simple-talk.com/blogs/2013/03/05/...
スティーブ・ヒバート

3
@Silvermind-セッションがプロセスに保存されている場合、リサイクル時にコピーされません。こちらをご覧ください
BornToCode 2016年

31

ここから:

システムリソースを節約する1つの方法は、アプリケーションプールのワーカープロセスのアイドルタイムアウト設定を構成することです。これらの設定が構成されると、ワーカープロセスは、指定された期間非アクティブになるとシャットダウンします。アイドルタイムアウトのデフォルト値は20分です。

また、IISのデフォルトのアプリプールのリサイクルが1740分に設定されている理由を確認してください

サーバー上に少数のサイトがあり、それらを常に高速でロードしたい場合は、これをゼロに設定します。それ以外の場合、トラフィックがない状態で20分経過すると、アプリプールは終了し、次回のアクセス時に再び起動できるようになります。問題は、アプリプールへの最初のアクセスで新しいw3wp.exeワーカープロセスを作成する必要があることです。これは、アプリプールを作成する必要があり、ASP.NETまたは別のフレームワークをロードする必要があり、その後、アプリケーションがロードされます。これには数秒かかる場合があります。したがって、常に実行する必要のない多くのサイトをホストするサーバーの場合を除いて、私はそれをあらゆる機会に0に設定します。


6

IISには

Idle Time-out Action : Suspend 設定

一時停止はプロセスを凍結するだけであり、プロセスを破棄するよりもはるかに効率的です。


0

IIS上の一連のWebサービスを呼び出すデスクトップアプリを継承しました。(また)Webサービスは、独立して(クライアントをオンにせずに)時限プロセスを実行できる必要があります。したがって、すべてタイマーがあります。Webサービスタイマーがシャットダウン(メモリリーク?)していたため、アイドルタイムアウトを0に設定し、タイマーはオンのままです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.