Application Request Routing の展開に関する推奨事項
公開日: 2009 年 7 月 16 日 (作業者: wonyoo (英語))
更新日: 2009 年 9 月 23 日 (作業者: wonyoo (英語))
目標
Application Request Routing (ARR) の展開に関する推奨事項に注目して理解すること。
この記事は、一般的なチュートリアルというよりはむしろ、ARR Version 2 の展開に関するベスト プラクティスを紹介するものです。
必要条件
この記事は、ARR の機能全体を熟知し、ディスク キャッシュを用いる ARR を展開、構成する方法を理解していることを前提としています。まだ習得していない場合は、以下のチュートリアルを確認してから進めることを強くお勧めします。
- Application Request Routing のディスク キャッシュの構成および有効化
- Application Request Routing を使用したキャッシュ階層構造の管理
- CDN での Application Request Routing の展開 (英語)
- Application Request Routing のディスクにキャッシュされたコンテンツの参照 (英語)
- キャッシュされたオブジェクトの削除
- Application Request Routing を使用した手動によるキャッシュ制御ディレクティブの上書き
- Application Request Routing のキャッシュ ノードのウォームアップ (英語)
Application Request Routing Version 2 RC がインストールされていない場合は、以下の場所からダウンロードすることができます。
- Microsoft Application Request Routing Version 2 for IIS 7.0 RC (x86) はこちらからダウンロードできます。
- Microsoft Application Request Routing Version 2 for IIS 7.0 RC (x64) はこちらからダウンロードできます。
このドキュメントに示された手順に従って、ARR Version 2 RC をインストールしてください。
ステップ 1: アプリケーション プールのアイドル タイムアウトを無効にする
アプリケーション プールのアイドル タイムアウトは、非アクティブな状態が続いたときに、アプリケーション プールをシャットダウンする IIS の機能です。既定ではこの時間が 20 分に設定されており、下記の時間を表します。
ワーカー プロセスがシャットダウン前にアイドル状態を維持する時間 (分)。 ワーカー プロセスのアイドル状態とは、要求の処理中ではなく、新しい要求を受信していない状態のことです。
IIS のこの機能の目的は、アプリケーション プールがアイドル状態の場合に、アプリケーション プールが使用するリソースの用途を変更し、再利用することです。この機能は、IIS サーバーを使用して複数のサイトとアプリケーションをホストし、サイトとアプリケーションにわたってリソースを共有するよう IIS サーバーを構成する場合に有用です。
これに対して一般的な ARR の展開シナリオでは、ARR 用のアプリケーション プールが常時実行されていることが必要となる場合があります。
アプリケーション プールのアイドル タイムアウトを無効にする手順は、「Application Request Routing Version 2 のインストール」の記事で説明しています。
ステップ 2: アプリケーション プールのリサイクル条件を無効にする
アプリケーション プールのリサイクルは、アプリケーション プールを定期的にリサイクルする IIS の機能です。この機能は、アプリケーション プールで実行されているアプリケーションに高い信頼性がなく (エンド ユーザーがアプリケーションを直接展開する共有ホスティング環境の場合)、アプリケーション プールを再起動すると、アプリケーションの機能と安定性が向上される場合に有用です (たとえば、アプリケーションで徐々にメモリ リークが生じる可能性がある場合、コードの欠陥を軽減するには、アプリケーションを無期限に実行するのではなく、定期的にリサイクルします)。
もちろんこの機能は、ARR が常時使用可能であることを求め、常時迅速に応答することを求める場合の ARR の使用事例には適しません。
アプリケーション プールのリサイクル条件を無効にする手順は、「Application Request Routing Version 2 のインストール」の記事で説明しています。
ステップ 3: キャッシュ ドライブの場所をシステム ドライブから分離する
ARR ではキャッシュ ドライブの場所としてフォルダーを使用できますが、キャッシュ ドライブの場所をシステム ドライブから分離することを強くお勧めします。その理由は、キャッシュされたコンテンツの数が数百万、数十億ものオブジェクトに増えるため、それらを管理する際の I/O 操作にコストがかかる可能性があるからです。「キャッシュされたオブジェクトの削除」の記事に記載したとおり、すべてのキャッシュされたオブジェクトをすべてのプライマリ キャッシュ ドライブの場所から削除するには長時間を要することがあり、ドライブをすばやくフォーマットする方が適切であることがあります。もちろん、これを行うには、キャッシュ ドライブの場所をシステム ドライブから分離することが必要になります。
最適なパフォーマンスを得るには、キャッシュ ドライブの場所をシステム ドライブとは物理的に区別された場所に設定することをお勧めします。また、キャッシュ ドライブの場所は高速回転 (15K RPM) のドライブに設定して、優れたパフォーマンスが得られるようにすることをお勧めします。物理ドライブが 1 つしかない場合でも、システム ドライブとキャッシュ ドライブの場所を区別することをお勧めします。サーバー マネージャーのディスクの管理を使用すると、同一の物理ドライブをパーティションで区切り、複数のボリュームを作成することができます。
ステップ 4: 8.3 形式の名前の作成を無効にする
NTFS パーティションで、すべての長いファイル名とディレクトリに 8.3 形式のファイル名およびディレクトリを作成すると、ディレクトリ列挙のパフォーマンスが低下する可能性があります。ARR はキャッシュ機能のためにディスク ドライブを高負荷で使用するため、8.3 形式の名前の作成を無効にすることをお勧めします。
Windows Server 2008 では、サーバー全体に対してのみ 8.3 形式の名前の作成を無効にすることができます。 言い替えれば、ボリュームごとに構成することはできません。
Windows Server 2008 R2 では、この設定をボリュームごとに構成することができます。
NTFS での 8.3 形式の名前の作成の詳細については、「NTFS パーティションで 8.3 形式の名前の作成を無効にする方法」に記載されています。8.3 形式の名前の作成を簡単に無効にするには、コマンド プロンプトで「fsutil.exe behavior set disable8dot3 1」と入力し、Enter キーを押します。