IIS8.0からアプリケーションプールのCPU使用率が閾値を超えた場合の動作として、『Throttle』『ThrottleUnderLoad』を設定可能になりました。ここに説明が記載されています。複数のアプリケーションプールに対して『Throttle』『ThrottleUnderLoad』設定することで、アプリケーションプール間でCPU使用率が制御可能になります。それでは、早速設定してみましょう。IIS マネージャーを起動し、アプリケーションプールをクリックします。
ここでは、『RyuchanApplicationPool』『RinachanApplicationPool』『ReinachanApplicationPool』があるとします。( アプリケーションが設定されてないですが.... ) それぞれのアプリケーションプールの CPU 使用の動作を下記のような条件で設定してみましょう。
- RyuchanApplicationPool:CPU の使用率は常に 60% 以下とする。
- RinachanApplicationPool:CPU の使用率は常に 30% 以下とする。
- ReinachanApplicationPool:RyuchanApplicationPool または、RinachanApplicationPool が動作している場合には、自分自身の Pool は CPU の使用率 10% 以下 とする。それ以外の場合は、CPUを自由に使用することができる。
まず、『RyuchanApplicationPool』を右クリックし、詳細設定をクリックします。
制限(% の 1/1000) と 制限動作を設定します。制限(% の 1/1000) を 60000 と指定します。制限動作は、Throttle を指定します。RinachanApplicationPool は同様に、制限(% の 1/1000) を 30000 と指定します。制限動作は、Throttle を指定します。
※ちょっと設定方法が分かりにくいですね。
次に、『ReinachanApplicationPool』を右クリックし、詳細設定をクリックします。『ReinachanApplicationPool』は、制限(% の 1/1000) を 10000 と指定します。制限動作は、ThrottleUnderLoad を指定します。
これでアプリケーションプールごとの CPU 使用率を制限することが可能になります。互いの動作に影響を与えないようにするなど、便利な機能だと思います。IIS 8.0 を使える環境があれば、設定すべき項目だと思います。
※今回設定しただけで、検証はしていません....