IIS7でアプリケーションプールのアイドルタイムアウトを無効にする方法


回答:


184

はい、アイドルタイムアウト値をゼロに設定すると、アイドルタイムアウトが無効になります。

奇妙なことに、これはMSドキュメントに記載されていませんが、これに関する私の証拠は以下から生じます。

  • IIS設定スキーマ

    次の場所にあるIIS設定スキーマを確認している場合:

    C:\Windows\System32\inetsrv\config\schema\IIS_schema.xml

    以下のためのスキーマ定義idleTimeoutの下で

    <sectionSchema name="system.applicationHost/applicationPools">

    それは次のようになります:

    <attribute name="idleTimeout" 
           type="timeSpan" 
           defaultValue="00:20:00" 
           validationType="timeSpanRange" 
           validationParameter="0,2592000,60"/>

    あなたが見ればvalidationParameter、我々は0 2592000秒の範囲参照属性(,60指定する設定の細かさを、この場合には値が60 [1分]によってdivisableでなければなりません)。

    最初の許容値が0表示される場合は、通常、設定を無効にできることを示しています。

  • IIS7アプリケーションプールのアイドルタイムアウト設定

    ブラッドキングスレーは、OrcsWebの創設者兼CEOであり、かなりよく知られており、尊敬され信頼されているマイクロソフトのホスティング会社であり、ゴールドパートナーです。

  • それから、それが「うまくいく」という事実の経験的な証拠もあります。


3
他の人へのヘッドサップ-これを読んだ後、IIS7でアイドルタイムアウトを0に設定すると、すぐにタイムアウトし始めました-すべてのページの読み込みに15秒ほどかかりました。私は今それを600に上げました、そしてすべてが再び驚異的に速いです。
12

1
@nailitdown:もう一度確認してください。IIS6アプリプールのタイムアウトを0に設定しただけで、問題なく動作します。IIS7とIIS6で異なる可能性があります。知っておくとよいでしょう。
Doug S

3
私が作業していたVPSに複数の問題があったと投稿したので...おそらくそれが何らかの方法で誤って構成された可能性があります。新しいVPSでそれを複製しようとしたところ、説明したように正しく動作しました。
nailitdown

3
@ Zero3-まあ.... トラフィックの多いサイトで設定を変更する前に、ステージング/ QA環境での副作用などを常にテストする必要があります。また、本番環境に変更を適用している間は、変更が有効になるまで、一般ユーザー向けのメンテナンスページを表示する必要があります。予期しないことがないように、これらの変更を管理する必要があります。
2016年

2
@ Zero3-はい、アプリプールの設定の多くを変更すると、プロセスを再起動して有効にする必要があります。これはデフォルトですぐに行われます。これはDisallowRotationOnConfigChangeで変更できます。詳細については、serverfault.com / questions / 333907 / を参照してください。
TristanK 2018年

11

正解です。ケブありがとう!

小さな更新:投稿したURLが移動し、現在は次のようになっています:http : //bradkingsley.com/iis7-application-pool-idle-time-out-settings/

これがデフォルトではない理由があるのか​​、アプリケーションプールを長時間開いたままにしておくとパフォーマンスに影響があるのか​​と思いました。まあ、それがアイドル状態のときにそれを維持することは、トラフィックがありアイドル時間がないときにそれをリサイクルしないよりもあなたに多くの問題を引き起こしません。メモリリークやその他のリソースリークが心配な場合は、前回のリサイクル以降のリクエスト数/メモリ消費に基づいて強制的にリサイクルする設定があります。ここにそのドキュメントがあります:

http://technet.microsoft.com/en-us/library/cc753179(v=ws.10).aspx

サーバーをアイドル時にリサイクルしない(idleTimeout = 0)に設定し、24時間ごとにリサイクルします。リサイクル>通常の時間間隔= 1440


15
リサイクルを24時間ではなく固定時間(0100など)に設定することをお勧めします。最後のサーバーの再起動/ iisのリセットから24時間になるためです。
Neal

1
Import-Module WebAdministration

$pools = Get-ChildItem iis:\apppools

foreach ($pool in $pools)
{ 
$poolname = $pool.Name

Set-ItemProperty IIS:\AppPools\$poolname -name processModel -value @{idletimeout="20"}
Set-ItemProperty IIS:\AppPools\$poolname -name processModel -value @{idletimeoutaction="Suspend"}
set-ItemProperty IIS:\AppPools\$poolname -Name Recycling.periodicRestart -Value @{time="0"} 
set-ItemProperty IIS:\AppPools\$poolname -Name Recycling.periodicRestart.schedule -Value @{value="02:00:00"} 
Set-ItemProperty IIS:\AppPools\$poolname -name Recycling -value @{logEventOnRecycle="Time, Requests, Schedule, Memory, IsapiUnhealthy, OnDemand, ConfigChange, PrivateMemory"} 

Write-Host "Updated $poolname settings" 
}

6
この貼り付けられたコードの説明が役に立ちます。
ルークアルダートン2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.