NCA (ネットワークキャッシュとアクセラレータ) は、HTTP 要求時にアクセスされる Web ページのカーネル内キャッシュを保持することにより、Web サーバーのパフォーマンスを向上させます。このカーネル内キャッシュはシステムメモリーを使用するため、通常は Web サーバーによって処理される HTTP 要求のパフォーマンスを、大幅に向上させます。HTTP 要求時に Web ページがシステムメモリー内に保持されているため、カーネルと Web サーバー間のオーバーヘッドが減少し、Web サーバーのパフォーマンスが向上します。NCA にはソケットインタフェースが用意されており、どのような Web サーバーでも最小限の変更で NCA と通信できます。
要求されたページがカーネル内キャッシュから取得された場合 (キャッシュヒット時) は、パフォーマンスが飛躍的に向上します。要求されたページがキャッシュ内になく、Web サーバーから取得する必要がある場合 (キャッシュミス時) でも、パフォーマンスは大幅に改善されます。
この製品は、専用の Web サーバー上で実行するようにします。NCA が動作するサーバー上で他の大きいプロセスを実行すると、問題が起きることがあります。
NCA はすべてのキャッシュヒットをログに記録します。ログはパフォーマンスを向上させるためにバイナリ形式で格納されます。ncab2clf コマンドを使用すると、バイナリ形式のログを共通ログ形式 (CLF) に変換できます。
この Oracle Solaris リリースには、次のような機能強化が行われています。
ソケットインタフェースの提供。
AF_NCA サポートを可能にするベクトル化 sendfile システムコールの提供。詳細は、sendfilev(3EXT) のマニュアルページを参照してください。
ncab2clf コマンド用の 2 つの新しいオプション、具体的には、選択された日付以前のレコードをスキップするための –s オプションと、指定された数のレコードを処理するための –n オプションの追加。
ncalogd.conf ファイル内の logd_path_name を用いて raw デバイス、ファイル、または両者の組み合わせを指定できます。
1 つの Web サーバーによる複数の AF_NCA ソケットのオープンをサポート。複数のソケットを使用すると、1 つのサーバーで複数の Web サーバーを実行できます。
NCA を使用する IP アドレスやポートを管理する新しい構成ファイル (/etc/nca/ncaport.conf)。Web サーバーが AF_NCA ソケットを直接サポートしない場合、このファイルと NCA ソケットユーティリティーライブラリを使って、AF_INET ソケットを AF_NCA ソケットに変換します。
Web キャッシュサーバーの管理に関するタスク情報は、Web キャッシュサーバーの管理 (タスクマップ)および Web ページのキャッシュ管理を参照してください。
NCA が機能するためには、次のコンポーネントが必要です。
カーネルモジュール: ncakmod
Web サーバー: httpd
カーネルモジュール ncakmod は、Web ページのキャッシュをシステムメモリー内に保持します。このモジュールは、ソケットインタフェースを介して Web サーバー httpd と通信します。プロトコルファミリータイプは PF_NCA です。
また、カーネルモジュールは、すべての HTTP キャッシュヒットを記録するログ機能も備えています。NCA ロギングは、HTTP データをバイナリ形式でディスクに書き込みます。NCA には、バイナリログファイルを共通ログ形式 (CLF) に変換するユーティリティーが用意されています。
次の図に、通常のデータフローと、NCA が有効になっている場合のデータフローを示します。
図 1 NCA サービスのデータフロー
クライアントと Web サーバー間の要求フローは次のように続行されます。
クライアントから Web サーバーに対して HTTP 要求が発行されます。
ページがキャッシュ内にある場合は、カーネル内キャッシュの Web ページが返されます。
ページがキャッシュ内にない場合は、Web サーバーに要求が送信され、ページが取得または更新されます。
ページがキャッシュされるかどうかは、応答で使用される HTTP プロトコルのセマンティクスによって異なります。HTTP 要求ヘッダーに Pragma:No-cache が含まれている場合、ページはキャッシュされません。
ページがクライアントに返されます。
次の表には、NCA 機能をサポートする必要があるファイルがリストされています。ほとんどのファイルは ASCII 形式ですが、バイナリ形式のファイルもあります。
|