Solaris のシステム管理 (第 3 巻)

Solaris Network Cache and Accelerator (NCA)

Solaris Network Cache and Accelerator (NCA) は、HTTP 要求時にアクセスされた Web ページのカーネル内部キャッシュを維持することによって、Web サーバーの性能を向上させます。NCA は、自身で要求を処理するか、あるいは処理のために Web サーバーに要求を渡すことにより、カーネル内で HTTP を完璧にサポートします。

この製品は、専用の Web サーバー上で実行するようにします。NCA を実行しているサーバー上で別の大規模なプロセスを実行すると、障害が生じる可能性があります。

NCA 機能には次の 2 つのコンポーネントが必要です。

ncakmod は、Solaris door ライブラリ (door_create(3DOOR) を参照) を介して、Web サーバーである httpd と通信します。Solaris door ライブラリは、同一ホスト上のプロセス間、および、カーネルとユーザープロセスの間で、高速かつ信頼性の高い同期式 RPC メカニズムを提供します。

ncakmodhttpd の間の通信に使用されるプロトコルは、Solaris door のリモートプロシージャコール (RPC) インタフェースを使用した、同期式の要求-応答型プロトコルです。door の RPC は、NCA のカーネル内で呼ばれ、同期がとられます。データは双方向に転送されます。つまり、各 door の RPC 内で、NCA から http サーバーと、http サーバーから NCA の両方向に転送されます。ncakmod は HTTP 要求を httpd に渡し、httpd は door インタフェースを介した要求に応答を返します。これによって、acceptxsendfile を使用した場合と同様の機能が提供されます。

NCA ロギングは、HTTP 要求データをバイナリ形式でディスクに書き込みます。NCA 機能では、CLF (共通ログ形式) ログファイル形式も使用できます。

表 2-2 Solaris NCA の管理作業

作業 

説明 

参照先 

NCA を有効にする 

 Web サーバー上の Web ページのカーネル内部キャッシュを有効にする手順を実行する「NCA を有効にする方法」

NCAを無効にする 

Web サーバー上の Web ページのカーネル内部キャッシュを無効にする手順を実行する 

「NCA を無効にする方法」

NCA ロギングの変更 

NCA ロギングプロセスを有効または無効にする手順を実行する 

「NCA ロギングを有効または無効にする方法」

NCA を有効にする方法

  1. スーパーユーザーになります。

  2. インタフェースを登録します。

    /etc/nca/nca.if ファイルに各物理インタフェースの名前を登録します (詳細は、nca.if(4) のマニュアルページを参照)。


    # cat /etc/nca/nca.if
    hme0
    hme1

    インタフェースごとに、対応する hostname.interface-name ファイルと、hostname.interface-name の内容と一致するエントリが /etc/hosts ファイル内になければなりません。すべてのインタフェースで NCA 機能を使用可能にするには、nca.if ファイル内でアスタリスク (*) を指定します。

  3. ncakmod カーネルモジュールを有効にします。

    /etc/nca/ncakmod.conf 内の status エントリを enabled に変更します。


    # cat /etc/nca/ncakmod.conf
    #
    # Copyright (c) 1998-1999 by Sun Microsystems, Inc.
    # All rights reserved.
    #
    #ident  "@(#)ncakmod.conf       1.1     99/08/06 SMI"
    #
    # NCA Kernel Module Configuration File
    #
    status=enabled
    httpd_door_path=/var/run/nca_httpd_1.door

    詳細は、ncakmod.conf(4) のマニュアルページを参照してください。

  4. NCA ロギングを有効にします。

    /etc/nca/ncalogd.conf 内の status エントリを enabled に変更します。


    # cat /etc/nca/ncalogd.conf
    #
    # Copyright (c) 1998-1999 by Sun Microsystems, Inc.
    # All rights reserved.
    #
    #ident  "@(#)ncalogd.conf       1.1     99/08/06 SMI"
    #
    # NCA Log Daemon Configuration File
    #
    status=enabled
    logd_path_name="/var/nca/log"
    logd_file_size=1000000

    logd_path_name エントリに示されているパスを変更すると、ログファイルの格納場所を変更できます。詳細は、ncalogd.conf(4) のマニュアルページを参照してください。

  5. IA の場合のみ: 仮想メモリーサイズを増やします。

    eeprom コマンドを使用して、システムの kernelbase を設定します。


    # eeprom kernelbase=0x900000000
    # eeprom kernelbase
    kernelbase=0x900000000

    2 行目の eeprom コマンドを実行すると、パラメータが設定済みかどうかを確認できます。


    注 -

    NCA を有効にすると、ユーザープロセスで使用可能な仮想メモリ容量が 3G バイト未満に削減されます。このため、システムは ABI に準拠しなくなります。この場合、システムの起動時に、システムがABI に準拠していないことを知らせる警告メッセージが表示されます。ほとんどのプログラムは、実際には 3G バイトの仮想アドレス空間を必要としません。3G バイトの仮想アドレス空間を必要とするプログラムは、NCA が有効に設定されていないシステムで実行する必要があります。


  6. サーバーを再起動します。

NCA を無効にする方法

  1. スーパーユーザーになります。

  2. ncakmod カーネルモジュールを無効にします。

    /etc/nca/ncakmod.conf 内の status エントリを disabled に変更します。


    # cat /etc/nca/ncakmod.conf
    #
    # Copyright (c) 1998-1999 by Sun Microsystems, Inc.
    # All rights reserved.
    #
    #ident  "@(#)ncakmod.conf       1.1     99/08/06 SMI"
    #
    # NCA Kernel Module Configuration File
    #
    status=disabled
    httpd_door_path=/var/run/nca_httpd_1.door

    詳細は、ncakmod.conf(4) のマニュアルページを参照してください。

  3. NCA ロギングを無効にします。

    /etc/nca/ncalogd.conf 内の status エントリを disabled に変更します。


    # cat /etc/nca/ncalogd.conf
    #
    # Copyright (c) 1998-1999 by Sun Microsystems, Inc.
    # All rights reserved.
    #
    #ident  "@(#)ncalogd.conf       1.1     99/08/06 SMI"
    #
    # NCA Log Daemon Configuration File
    #
    status=disabled
    logd_path_name="/var/nca/log"
    logd_file_size=1000000

    詳細は、ncaklogd.conf(4) のマニュアルページを参照してください。

  4. サーバーを再起動します

NCA ロギングを有効または無効にする方法

NCA が有効になっていると、必要に応じて NCA のログ処理のオンまたはオフを切り替えることができます (詳細は、「NCA を有効にする方法」を参照)。

  1. スーパーユーザーになります。

  2. NCA のログ処理のオンとオフを切り替えます。

    ロギングを恒久的に無効にする場合は、/etc/nca/ncalogd.conf 内の statusdisabled に変更し、システムを再起動する必要があります。詳細は、ncalogd.cof(4) のマニュアルページを参照してください。

    1. ロギングを停止するには、次のコマンドを入力します。


      # /etc/init.d/ncalogd stop
      
    2. ロギングを開始するには、次のコマンドを入力します。


      # /etc/init.d/ncalogd start
      

NCA ファイル

NCA 機能をサポートするにはいくつかのファイルが必要です。ほとんどのファイルは ASCII 形式ですが、バイナリ形式のファイルもあります。表 2-3 に、必要なファイルを一覧します。

表 2-3 NCA ファイル

ファイル名 

機能 

/etc/hostname.*

サーバー上に構成されるすべての物理インタフェースの一覧が記述されている 

/etc/hosts

サーバーに割り当てられるすべてのホスト名の一覧が記述されている。NCA が機能するには、このファイルの各種エントリが、/etc/hostname.* ファイル内のエントリと一致していなければならない

/etc/init.d/ncalogd

サーバーの起動時に NCA 起動スクリプトが実行される 

/etc/nca/nca.if

NCA が実行されるインタフェースの一覧が記述されている (nca.if(4) のマニュアルページを参照)

/etc/nca/ncakmod.conf

NCA 用の構成パラメータの一覧が記述されている (ncakmod.conf(4) のマニュアルページを参照)

/etc/nca/ncalogd.conf

NCA ロギング用の構成パラメータの一覧が記述されている (ncalogd.conf(4) のマニュアルページを参照)

/usr/bin/ncab2clf

ログファイル内のデータを共通ログファイル形式 (CLF) に変換するためのコマンド (ncab2clf(1) のマニュアルページを参照)

/var/nca/log

ログファイルデータを保持します。ファイルはバイナリ形式なので、編集しないようにする