dynamicIdleThreshold

公開日: 2007 年 12 月 1 日 (作業者: walterov (英語))

更新日: 2009 年 5 月 11 日 (作業者: walterov (英語))

はじめに

Windows Server® 2008 で大量のページング処理 (RAM の 1.5 倍にまでなることがある) が発生すると、HTTP 要求に対する応答速度が低下します。この現象は、共有ホスティング シナリオでよく見られます。IIS 7 の新機能を使うと、ページング ファイルの使用量 (合計コミット) に応じてワーカー プロセスのアイドル タイムアウトを動的に変化させて、メモリー割り当てによって要求に対する応答速度が低下するのを抑えることができます。

既定では、アイドル タイムアウトは 20 秒です。このタイムアウト値は、Windows プロセス アクティブ化サービス (WAS) で構成できます。現在のアイドル タイムアウト値が WAS で構成された値よりも大きくなると、ワーカー プロセスがシャットダウンされます。

IIS 7 の dynamicIdleThreshold プロパティを使うと、メモリー使用量が指定上限値に達した場合のアイドル タイムアウトを動的に減らすことができます。この設定の単位は、"コミットされた RAM のパーセンテージ" です。共有ホスティングのテストでは、値が 130 でパフォーマンスがピークに達しました。メモリー使用量が設定の 80% に達すると、アイドル タイムアウトが動的に減少し始めます。

dynamicIdleThreshold を構成する

  • このプロパティに値 (たとえば 130%) を設定するには、コマンド プロンプトを開いて以下を実行します。
%windir%\system32\inetsrv\appcmd set config -section:system.applicationHost/webLimits -dynamicIdleThreshold:130

IIS PowerShell Provider を使用して dynamicIdleThreshold を構成する

PowerShell プロンプトを開き、以下のコマンドを実行します。

set-webconfigurationproperty /system.applicationHost/webLimits -name dynamicIdleThreshold -value 130

このプロパティの詳細については、http://technet2.microsoft.com/windowsserver2008/en/library/43e91f73-f0b4-4320-9d46-3f8f4905edd81033.mspx?mfr=true (英語) を参照してください。

イベント ログ エントリ

WAS が生成する、いくつかのイベント ログ エントリを以下に示します。

指定したメモリーしきい値の 80% に達した場合

イベント ログ ID レベル メッセージ

5192

情報

コミット メモリーの容量が、要求開始の上限値に近づいています。Windows プロセス アクティブ化サービス (WAS) により、すべてのワーカー プロセスのアイドル タイムアウト値が減少します。設定された時間より前にワーカー プロセスのアイドル状態が終了する場合があります。現在の物理メモリー使用量: '%2' MB、現在の空き物理メモリー: '%3' MB。

 

指定したメモリーしきい値の 90% に達した場合

イベント ログ ID レベル メッセージ

5193

警告

コミット メモリー容量が、指定上限値に達した、または達しようとしています。Windows プロセス アクティブ化サービス (WAS) により、ワーカー プロセスのアイドル タイムアウト値が急激に減少します。設定された時間より前にワーカー プロセスのアイドル状態が終了する場合があります。現在の物理メモリー使用量: '%2' MB、現在の空き物理メモリー: '%3' MB。

指定したメモリーしきい値の 75% まで回復した場合

イベント ログ ID レベル メッセージ

5194

情報

コミット メモリー容量が高負荷レベルを下回ったので、Windows プロセス アクティブ化サービス (WAS) は、ワーカー プロセスのアイドル タイムアウト値を元の設定値に戻します。現在の物理メモリー使用量: '%2' MB、現在の空き物理メモリー: '%3' MB。

 

新しいワーカー プロセスのアイドル タイムアウト イベント ログ メッセージ

dynamicIdleThreshold 値の 80% ~ 100% の範囲で、ワーカー プロセスがタイムアウトした場合、WAS は以下のイベント ログ エラー メッセージを生成します。dynamicIdleThreshold の値が 80% 未満の場合は、イベント ログ メッセージは生成されません。

イベント ログ ID レベル メッセージ

5195

情報

アプリケーション プール '%2' で使用されているプロセス ID '%1' のワーカー プロセスは、アクティブでなかったためシャットダウンされました。システムが高負荷状態にあるので、このワーカー プロセスのアイドル タイムアウト値が元の '%3' 分から '%4' 分に減少しました。必要に応じて、新しいワーカー プロセスが開始されます。