次の方法で共有


IIS 8.5 のアイドル状態のワーカー プロセスのページアウト

作成者: Gary Ericson

IIS 8.5 では、管理者は、アイドル状態のワーカー プロセスを終了するのではなく、中断することができます。

互換性

バージョン メモ
IIS 8.5 以降 IIS 8.5 では、アイドル状態のワーカー プロセスのページアウトが導入されました。
IIS 8.0 以前 IIS 8.5 より前は、アイドル状態のワーカー プロセスのページアウトはサポートされていませんでした。

問題

Windows Server 2012 のインターネット インフォメーション サービス (IIS) では、指定された期間アイドル状態となっているワーカー プロセスをタイムアウトさせるオプションが管理者に提供されます。 これは、サイトがアイドル状態のときにシステム リソースが解放されるため、頻繁にアクセスされないサイトに適したオプションです。 欠点は、次回サイトにアクセスする際に、ユーザーがワーカー プロセスが再び開始されるのを待つ必要があることです。

解決策

IIS 8.5 以降では、管理者は、アイドル状態のワーカー プロセスを終了するのではなく、中断することができます。 中断されたワーカー プロセスは引き続き有効ですが、ディスクにページアウトされるため、消費されるシステム リソースが削減されます。 ユーザーがサイトに再度アクセスすると、ワーカー プロセスは中断から復帰し、すぐに使用できるようになります。 アイドル状態のワーカー プロセスが終了された場合、ワーカー プロセスがシャットダウンされ、その後サイトにアクセスした際の起動期間が長くなります。 プロセスの終了は既定の動作であり、IIS 8.5 より前のバージョンの IIS で使用されていたのと同じ動作です。

idleTimeoutAction 属性は、1 つのアプリケーション プールに対して構成することも、すべてのアプリケーション プールの既定値として構成することもできます。

ステップ バイ ステップの手順

単一アプリケーション プールのアイドル状態のワーカー プロセスのページ アウトを構成する

  1. IIS マネージャーを開きます。
  2. [接続] ウィンドウで [アプリケーション プール] を選択し、[アプリケーション プール] ウィンドウでアプリケーション プールを選択して、[操作] ウィンドウの [詳細設定...] をクリックします。
  3. [詳細設定] ダイアログ ボックスの [プロセス モデル] で、[アイドル タイムアウトの操作] の値として [Suspend] (中断) を選択して、タイムアウト値に達したときにワーカー プロセスを中断し、ディスクにページアウトするようにします。 [Terminate] (終了) を選択すると、ワーカー プロセスがシャットダウンされます。
    プールのアイドル タイムアウトを設定する
  4. 必要に応じて、[アイドル状態のタイムアウト] の値を既定の 20 分から別の期間に設定します。
  5. OK をクリックします。

アイドル状態のワーカー プロセスのページアウトをアプリケーション プールの既定として構成する

  1. IIS マネージャーを開きます。
  2. [接続] ウィンドウで [アプリケーション プール] を選択し、[操作] ウィンドウで [アプリケーション プールの既定値の設定...] をクリックします。
  3. [アプリケーション プールの既定値の設定] ダイアログ ボックスの [プロセス モデル] で、[アイドル タイムアウトの操作] の値として [Suspend] (中断) を選択して、タイムアウト値に達したときにワーカー プロセスを中断し、ディスクにページアウトするようにします。 [Terminate] (終了) を選択すると、ワーカー プロセスがシャットダウンされます。
    アイドル タイムアウトを既定として設定する
  4. 必要に応じて、[アイドル状態のタイムアウト] の値を既定の 20 分から別の期間に設定します。
  5. OK をクリックします。

中断状態のリソースの使用を表示する

タスク マネージャーで中断されたワーカー プロセスを表示すると、メモリや CPU がほとんど使用されなくなっていることがわかります。

中断されたアイドル状態のサイト

applicationHost.config でアイドル タイムアウトの操作の構成を確認する

idleTimeoutAction 構成は、applicationHost.config ファイル内の 2 つの場所に入力できます。

  • 単一アプリケーション プールの場合、<add> 要素の <processModel> 子要素で、そのプールに対してのみ idleTimeoutAction 属性を設定します。 これは、下の applicationHost.config ファイルのスクリーンショットで、DefaultAppPool に設定されている内容と同様です。idleTimeoutAction が "Suspend" に設定されています。
  • すべてのアプリケーション プールの場合、<applicationPoolDefaults> 要素の <processModel> 子要素内で、すべてのプールの既定の設定を行います。 特定のプール (下の .NET v4.5 プールなど) に idleTimeoutAction が設定されていない場合、そのプールには既定の idleTimeoutAction 値が使用されます (この場合は "Terminate" です)。 プールに idleTimeoutAction が設定されている場合、その設定により既定値がオーバーライドされます。

構成ファイルのアイドル タイムアウト

まとめ

このガイドでは、指定された期間アイドル状態となっているワーカー プロセスを中断または終了するように IIS を構成しました。