アプリケーション プールのパフォーマンスの設定
アプリケーション プールのパフォーマンスの設定によって、ワーカー プロセスの操作を制御できます。ここでは、アプリケーション プールのパフォーマンスの設定を指定する方法について説明します。
アプリケーション プールのパフォーマンスの設定の指定
アプリケーション プールのパフォーマンスの設定は、アプリケーション プールの [プロパティ] ダイアログ ボックスの [パフォーマンス] タブで指定します。
アプリケーション プールのパフォーマンスの設定を指定するには
- IIS 管理コンソールを開き、プラス記号をクリックしてローカル コンピュータを展開します。
- プラス記号をクリックして [アプリケーション プール] フォルダを展開します。
- 適切なアプリケーション プールを右クリックし、[プロパティ] をクリックします。アプリケーション プールの [プロパティ] ダイアログ ボックスが表示されます。
- [パフォーマンス] タブをクリックし、適切なアプリケーション プールの設定を指定します。
アプリケーション プールの [プロパティ] ダイアログ ボックスの [パフォーマンス] タブ
Web ガーデン
[Web ガーデン] は、ASP.NET プロセス モデルの webGarden および cpuMask の設定に相当するアプリケーション プールの設定です。[Web ガーデン] を有効にするには、[最大ワーカー プロセス数] を 1 よりも大きい値に設定します。この値によって、アプリケーション プールの最大プロセス数も決定されます。
Web ガーデンによって複数のプロセスを使用できるようになるため、各プロセスでアプリケーション状態、インプロセス セッション状態、キャッシュ、および静的データのコピーをそれぞれ保持できます。Web ガーデンはすべてのアプリケーションで使用するべきではありません。特に、状態を維持する必要があるアプリケーションでは使用しないでください。Web ガーデン モードの使用が適切であるかどうかは、必ずアプリケーションのパフォーマンスのベンチマーク テストを行ってから判断してください。
Web ガーデンを使用するには、セッション状態およびラウンド ロビンのしくみを理解している必要があります。アプリケーション プールの他の設定がアプリケーションにどのように影響するかについても考慮する必要があります。
ワーカー プロセス分離モードを使用する Web ガーデンのセッション状態
セッション状態を使用する場合は、ワーカー プロセス分離モードでは要求元のプロセスへの要求のルーティングがサポートされないので注意が必要です。Web ガーデンで ASP セッション状態またはアプリケーション状態のアプリケーションを実行する場合、アプリケーションからの要求は要求元のプロセスに送信する必要があります。IIS 6.0 のアプリケーション プール処理を使用する場合、アプリケーションの接続を開いたままにして、要求が適切なプロセスに送信されるようにします。接続が開いたままになっていない場合、要求は Web ガーデンにサービスを提供する、次に利用可能なワーカー プロセスに送信されます。
ワーカー プロセス分離モードを使用する Web ガーデンのラウンド ロビン
ラウンド ロビンは、アプリケーションの負荷分散の方法の 1 つです。受信された各要求は、連続する次のプロセスに自動的に送信されます。たとえば、Web ガーデンに 4 つのプロセスがある場合、要求はプロセス 0、1、2、3 に順番に送信されます。これ以降の要求についても、この処理が繰り返されます。
ワーカー プロセス分離モードを使用する Web ガーデンのアプリケーション プールのパラメータ
アプリケーション プールの設定の中には、Web ガーデンにおいて固有の動作を持つものがあります。これらの動作について次の表で説明します。
アプリケーション プールの設定 | 動作 |
---|---|
AppPoolQueueLength | このパラメータの値は影響を受けません。ただし、要求は Web ガーデンにサービスを提供するワーカー プロセスにラウンド ロビン形式で分散されます。 |
DisallowOverlappingRotation | Web ガーデンでの動作変更なし |
DisallowRotationOnConfigChange | Web ガーデンでの動作変更なし |
IdleTimeout | 各プロセスが個別にタイムアウトとなるよう、プロセスごとに個別に計算されます。選択するルーティング アルゴリズムに応じて、プロセス数は負荷に合わせて自動的に構成されます。 |
LoadBalancerCapabilities | Web ガーデンでの動作変更なし |
OrphanAction | Web ガーデンでの動作変更なし |
OrphanWorkerProcess | Web ガーデンでの動作変更なし |
PeriodicRestartTime | このパラメータは Web ガーデンでは意味が異なります。Web ガーデンでは、このパラメータはすべてのプロセスがリサイクルされる時間間隔を指定します。プロセスは、指定した時間内に均等な間隔で順にリサイクルされます。たとえば、Web ガーデンに 4 つのプロセスがあり、PeriodicRestartTime が 20 時間に設定されている場合、最初のプロセスは 5 時間後にリサイクルされ、2 番目のプロセスは 10 時間後にリサイクルされます。
メモ プロセスがクラッシュした場合、代わりのプロセスには PeriodicRestartTime の実行時の値が設定されます。これによって、クラッシュしたプロセスを、他のプロセスと共に、PeriodicRestartTime で指定した時間内でリサイクルすることができます。 |
PeriodicRestartRequests | このパラメータは Web ガーデンでは意味が異なります。Web ガーデンでは、このパラメータは特定の数の要求を受信したときに、すべてのプロセスがリサイクルされることを指定します。プロセスは、指定した要求数を均等に分割した間隔で順にリサイクルされます。たとえば、Web ガーデンに 4 つのプロセスがあり、PeriodicRestartRequests の要求数が 40,000 件に設定されている場合、最初のプロセスは 10,000 件の要求を受信したときにリサイクルされ、2 番目のプロセスは 20,000 件の要求を受信したときにリサイクルされます。最初のプロセスのセットがリサイクルされた後、次のプロセスのセットの PeriodicRestartRequests の値も 40,000 に設定されます。 |
PeriodicRestartSchedule | Web ガーデンでの動作変更なし。管理者がスケジュールに基づくリサイクルの使用を決定した場合、Web ガーデンのすべてのプロセスは同時にリサイクルされます。 |
PingInterval | Web ガーデンの動作変更なし |
PingResponseTime | Web ガーデンの動作変更なし |
PingingEnabled | Web ガーデンの動作変更なし |
RapidFailProtection | Web ガーデンの動作変更なし。たとえば、Web ガーデン全体の総エラー数を計算し、一定の時間間隔で比較できます。これにより、エラーからの回復処理の効率を向上することができます。 |
RapidFailProtectionInterval | Web ガーデンの動作変更なし。たとえば、Web ガーデン全体の総エラー数を計算し、一定の時間間隔で比較できます。これにより、エラーからの回復処理の効率を向上することができます。 |
RapidFailProtectionMaxCrashes | Web ガーデンの動作変更なし。たとえば、Web ガーデン全体の総エラー数を計算し、一定の時間間隔で比較できます。これにより、エラーからの回復処理の効率を向上することができます。 |
SMPAffinitized | Web ガーデンの動作変更なし |
SMPProcessorAffinityMask | IIS 5.0 の分離モードで使用可能なワーカー プロセス数は、CPU と同数に制限されています。ワーカー プロセス分離モードでは、複数の CPU で単一のワーカー プロセスにサービスを提供できます。 |
ShutdownTimeLimit | Web ガーデンの動作変更なし |
StartupTimeLimit | Web ガーデンの動作変更なし |
アイドル タイムアウト
[アイドル タイムアウト] は、ASP.NET プロセス モデルの idleTimeout の設定に相当するアプリケーション プールの設定です。この設定は、ワーカー プロセスやアプリケーション プールがアクティブではないためにシャットダウンされるまでの時間を指定します。既定では [アイドル タイムアウト] は有効で、20 分に設定されています。時間制限を変更するには、スピン ボックスで値を変更します。この設定を無効にするには、[アイドル タイムアウト] チェック ボックスをオフにします。
要求キューの制限
[要求キューの制限] は、ASP.NET プロセス モデルの restartQueueLimit の設定に相当するアプリケーション プールの設定です。この設定は、異常終了後にワーカー プロセスが起動するまで待機する間に、ASP.NET ISAPI でキューに入れることができる最大要求数を指定します。既定では [要求キューの制限] は有効で、要求数は 1000 に設定されています。キューに入れる要求数の制限を変更するには、スピン ボックスで値を変更します。この設定を無効にするには、[要求キューの制限] チェック ボックスをオフにします。
参照
ワーカー プロセス分離モード用のアプリケーション プールの設定 | アプリケーション プールのリサイクルの設定 | アプリケーション プールの状態の設定 | アプリケーション プールの ID の設定 | IIS 6.0 のアプリケーション分離モード | IIS 6.0 のアプリケーション分離モードの概要 | ASP.NET プロセス モデルの設定と IIS 6.0 アプリケーション プールの設定の対応 | <processModel> 要素