IPQoS の管理

第 5 章 フローアカウンティングの使用と統計情報の収集 (手順)

この章では、IPQoS システムによって処理されるトラフィックに関して、アカウンティング情報と統計情報を取得する方法について説明します。

この章では、以下の内容について説明します。

フローアカウンティングの設定 (作業マップ)

次の表に、flowacct モジュールを使ってトラフィックフローに関する情報を取得するための一般的な作業を示します。

表 5–1 フローアカウンティングの設定 (作業マップ)

作業 

説明 

参照先 

1. トラフィックフローのアカウンティング情報を格納するためのファイルを作成する 

acctadm コマンドを使用して、flowacct による処理結果を格納するファイルを作成する

フローアカウンティングデータ用のファイルの作成方法

2. flowacct のパラメータを IPQoS 構成ファイルに定義する

timertimeout、および max_limit の各パラメータの値を定義する

IPQoS 構成ファイル内でクラスのアカウンティングを有効にする方法

3. ファイルの内容を表示する 

アカウンティングレコードをファイルから読み取るためのユーティリティの作成に使用できるプログラム例を表示する  

フローアカウンティングファイルを表示する方法

フローに関する情報の記録

IPQoS の flowacct モジュールを使用すると、発信元アドレス、着信先アドレス、フローに含まれるパケット量などの、トラフィックフローに関する情報を収集できます。 フローに関する情報を蓄積して記録するプロセスのことを「フローアカウンティング」と呼びます。

特定のクラスのトラフィックに関するフローアカウンティングの結果は、「フローレコード」というテーブルに記録されます。 各フローレコードは、一連の属性から構成されます。 これらの属性には、特定のクラスの一定時間のトラフィックフローに関するデータが格納されます。 flowacct の属性については、表 6–4 を参照してください。

フローアカウンティングは、サービスレベル契約 (SLA) に定義されているとおりに顧客に課金するために、非常に役立ちます。また、フローアカウンティングを使って、重要なアプリケーションのフロー統計情報を取得することもできます。 この節では、flowacct を Solaris 拡張アカウンティング機能と組み合わせて、トラフィックフローに関するデータを取得するための作業について説明します。

この章以外の場所からも次の情報が入手できます。

フローアカウンティングデータ用のファイルの作成方法

flowacct アクションを IPQoS 構成ファイルに追加する前に、flowacct モジュールから得られるフローレコードを格納するためのファイルを作成する必要があります。 このためには、acctadm コマンドを使用します。 acctadm では、基本属性または拡張属性のどちらもファイルに記録できます。 flowacct のすべての属性については、表 6–4を参照してください。acctadm の詳細については、acctadm(1M) のマニュアルページを参照してください。

  1. スーパーユーザーとして IPQoS 対応システムにログインします。

  2. 基本フローアカウンティングファイルを作成します。

    次の例では、例 3–1 で構成したプレミアム Web サーバー用に、基本フローアカウンティングファイルを作成する方法を示します。


    # /usr/sbin/acctadm -e basic -f /var/ipqos/goldweb/account.info flow
    

    文 

    定義  

    acctadm -e

    -e オプションを使って acctadm を呼び出す。 -e オプションによって、あとに続く引数が有効になる

    basic

    flowacct の 8 つの基本属性のデータだけがファイルに記録されることを示す

    /var/ipqos/goldweb/account.info

    flowacct から得られるフローレコードを格納するファイルの絶対パス名を示す

    flow

    acctadm にフローアカウンティングを有効にするよう指示する

  3. 引数を指定しないで acctadm と入力し、IPQoS システムのフローアカウンティングに関する情報を表示します。

    acctadm によって次の出力が生成されます。

    Task accounting: inactive
           Task accounting file: none
         Tracked task resources: none
       Untracked task resources: extended
             Process accounting: inactive
        Process accounting file: none
      Tracked process resources: none
    Untracked process resources: extended,host,mstate
                Flow accounting: active
           Flow accounting file: /var/ipqos/goldweb/account.info
         Tracked flow resources: basic
       Untracked flow resources: dsfield,ctime,lseen,projid,uid

    最後の 4 つのエントリ以外はすべて、Solaris 9 のリソースマネージャ機能で使用されます。 次の表では、IPQoS に固有のエントリについて説明します。

    エントリ 

    説明 

    Flow accounting: active

    フローアカウンティングが有効になっていることを示す 

    Flow accounting file: /var/ipqos/goldweb/account.info

    現在のフローアカウンティングファイルの名前を示す 

    Tracked flow resources: basic

    基本フロー属性だけが記録されることを示す 

    Untracked flow resources: dsfield,ctime,lseen,projid,uid

    ファイルに記録されない flowacct の属性を示す

  4. (オプション) 次の方法で、拡張属性をアカウンティングファイルに追加します。


    # acctadm -e extended -f /var/ipqos/goldweb/account.info flow
  5. (オプション) 基本属性だけがアカウンティングファイルに記録されるような設定に戻します。


    # acctadm -d extended -e basic -f /var/ipqos/goldweb/account.info

    -d オプションによって拡張アカウンティングが無効になります。

次に進む手順

作業 

参照先  

flowacct のパラメータを IPQoS 構成ファイルに定義する

IPQoS 構成ファイル内でクラスのアカウンティングを有効にする方法

acctadm を使って作成したファイルのデータを表示する

フローアカウンティングファイルを表示する方法

フローアカウンティングファイルを表示する方法

acctadm で作成したフローアカウンティングファイルの内容を表示するには、スクリプトを作成する必要があります。 作成するスクリプトのベースとして、資源管理作業用およびアカウンティング処理用のデモスクリプトを使用できます。次の手順では、デモスクリプトに関する情報の入手方法を示します。

次の手順の前に、フローアカウンティングデータ用のファイルの作成方法の説明に従って、フローレコードを格納するファイルを作成している必要があります。 また、トラフィッククラスが flowacct によって追跡されるように、flowacct のアクションとパラメータを IPQoS 構成ファイルに追加している必要もあります。

次の手順では、プロセスや作業を表示するために acctadm ファイルの出力を行う、libexacct プログラムインタフェースと exdump ユーティリティを紹介します。 技術的な情報については、libexacct(3LIB) のマニュアルページを参照してください。

  1. IPQoS システムでスーパーユーザーになり、ディレクトリ /usr/demo/libexacct にアクセスします。

    このディレクトリには、Makefile と exdump.c スクリプトが入っています。

  2. README の説明に従って、exdump の構築手順を実行します。

  3. README の説明に従って、フローアカウンティングファイルのデータを表示します。

統計情報の収集

kstat コマンドを使用すると、IPQoS モジュールから統計情報を生成できます。次の構文を使用します。


/bin/kstat -m ipqos-module-name
表 6–5 に示すように、有効な IPQoS モジュール名を任意に指定できます。 たとえば、dscpmk マーカーによって生成される統計情報を表示するには、次の形の kstat を使用します。

/bin/kstat -m dscpmk
技術的な情報については、kstat(1M) のマニュアルページを参照してください。

例 — IPQoS の kstat 統計情報

ここでは、kstat を実行して flowacct モジュールに関する統計情報を取得した場合に予想される結果の一例について説明します。


# kstat -m flowacct
module: flowacct                        instance: 3     
name:   Flowacct statistics             class:    flacct 
        bytes_in_tbl                    84
        crtime                          345728.504106363
        epackets                        0
        flows_in_tbl                    1
        nbytes                          84
        npackets                        1
        snaptime                        345774.031843301
        usedmem                         256

エントリ 

説明 

class: flacct

トラフィックフローが属するクラスの名前 (このインスタンスでは flacct) を示す

bytes_in_tbl

フローテーブルの総バイト数。すなわち、フローテーブルに現在格納されているすべてのフローレコードの合計バイト数。 このフローテーブルの合計バイト数は 84。フローテーブルにフローがまったく存在しない場合、bytes_in_tbl の値は 0 になる

crtime

この kstat が最後に作成された時間

epackets

処理中にエラーが発生したパケットの数 (このインスタンスでは 0) 

flows_in_tbl

フローテーブルに格納されているフローレコードの数 (このインスタンスでは 1)。フローテーブルにレコードがまったく存在しない場合、flows_in_tbl の値は 0 になる

nbytes

この flowacct アクションのインスタンスで表示される合計バイト数 (この例では 84)。 この値は、フローテーブルに現在格納されているバイト数と、タイムアウトしてすでにフローテーブルに存在しないバイト数とを含む

npackets

この flowacct アクションのインスタンスで表示される合計パケット数 (この例では 1)。 npackets は、フローテーブルに現在格納されているパケットと、タイムアウトしてすでにフローテーブルに存在しないパケットとを含む

usedmem

この flowacct インスタンスで保持されているフローテーブルが使用しているメモリのバイト数。 この例では、usedmem の値は 256。 フローテーブルにフローレコードがまったく存在しない場合、usedmem の値は 0 になる