管理の手引き


管理プログラム構成ファイルの作成

管理プログラムを開始するときには、 データベースに対して実行されるアプリケーションを管理するのに使用する規則を含んだ構成ファイルの名前を指定します。 管理プログラムは、これらの規則に基づいて処置を行います。

データベースの管理に関する要件が変更になった場合には、 管理プログラムを停止しないで構成ファイルを編集することができます。 各管理プログラム・デーモンは、構成ファイルが変更されたことを検出すると、 ファイルを再度読み取ります。

各ノード上の管理プログラム・デーモンは同一の構成ファイルを読み取りできなければならないため、 構成ファイルは、すべてのデータベース・ノードに取り付けられるディレクトリーに作成する必要があります。

構成ファイルは、規則と注釈から構成されています。 大部分の項目は、英大文字、英小文字、または英大文字小文字混合文字で指定することができます。 例外は applname で、 これは大文字小文字の区別をして指定する必要があります。

注釈は、中括弧 { } に入れて区切る必要があります。 規則には、以下のものが含まれます。

ファイル内の各規則の後ろには、セミコロン (;) を置く必要があります。

以下の規則によって、モニターするデータベースと、 デーモンが活動 (管理プログラム・デーモンで説明されています) のループを一回り処理した後ウェイクアップするまでの時間間隔が指定されます。 これらの規則はそれぞれ、ファイルに 1 回しか指定できません。

dbname
モニター対象となるデータベースの名前または別名。

account nnn
各接続ごとの CPU 使用率統計を含む会計レコードが、 指定された数の分ごとに書き出されます。
注:このオプションは Windows NT または OS/2 上では使用できません。

短い接続セッションが全体的にアカウント・インターバル内で発生する場合、 ログ・レコードは作成されません。 ログ・レコードが作成される場合、 そこには前の接続に関するログ・レコード以来の CPU 使用量を反映する CPU 統計が含まれます。 管理プログラムが停止してから再始動された場合、 CPU 使用量は 2 つのログ・レコードで反映される場合があります。 これらはログ・レコードのアプリケーション ID を介して識別できます。 管理プログラムのログ・ファイルについての詳細は、 管理プログラム・ログ・ファイルを参照してください。

interval
デーモンがウェイクアップする時間間隔 (秒単位)。 時間間隔が指定されない場合には、120 秒の時間間隔が使用されます。

以下にあげる規則文節を組み合わせて、1 つの規則を作ります (すなわち、 完全規則とはセミコロンで終わるものであり、各独立の文節とは異なります)。 文節が指定するのは、規則が適用される時間帯、使用できるリソースの制限、 および任意指定ですが、特定のユーザーまたはアプリケーション、 規則に指定した制限を超えた場合に管理プログラムが行う処置です。 文節は 1 つの規則には 1 回ずつしか指定できませんが、 複数の規則に指定することができます。 文節は、以下に説明する順序で指定する必要があります。 以下の説明では、[ ] は任意指定の文節を示しています。

[desc]
規則に関するテキスト記述を指定します。 記述は、単一引用符か二重引用符のいずれかで囲む必要があります。

[time]
規則が適用される時間帯を指定します。

時間帯は、time hh:mm hh:mm (たとえば、 time 8:00 18:00) という形式で指定する必要があります。 この文節が指定されない場合は、規則は全日 (24 時間) 有効になります。

[authid]
アプリケーションを実行する許可 ID (authid) を 1 つまたは複数指定します。 複数の authid を指定する場合は、 たとえば authid gene, michael, james のように、 コンマ (,) で区切る必要があります。 この文節が規則になかった場合には、規則はすべての authid に適用されます。

[applname]
データベースへの接続を行う実行可能アプリケーション (または、 オブジェクト・ファイル) の名前を指定します。

複数のアプリケーション名を指定する場合は、 たとえば applname db2bp, batch, geneprog のように、 コンマ (,) で区切る必要があります。 この文節が規則になかった場合には、 規則はすべてのアプリケーション名に適用されます。

注:

  1. アプリケーション名は、大文字小文字を区別する必要があります。

  2. データベース・マネージャーは、 すべてのアプリケーション名を 20 文字で切り捨てます。 管理したいアプリケーションがアプリケーション名の最初の 20 文字で固有に識別可能であることを確認しておく必要があります。 確認を怠ると、望まないアプリケーションを管理対象としてしまう可能性があります。

    管理プログラム構成ファイルに指定されたアプリケーション名は 20 文字で切り捨てられて、 構成ファイルの内部表記に一致させられます。

setlimit
管理プログラムが検査する制限を 1 つまたは複数指定します。 制限値は、-1 か、さもなければ 0 より大きい値にしなければなりません (たとえば、 cpu -1 locks 1000 rowssel 10000)。 制限 (cpu、 locks、 rowsread、 uowtime) は、最低でも 1 つは指定する必要があり、 規則によって指定されていない制限は、その特定の規則によって制限されません。 管理プログラムが検査できるのは、以下に示す制限です。

cpu nnn
アプリケーションが使用可能な CPU の秒数を指定します。 -1 を指定すると、 管理プログラムはアプリケーションの CPU 使用の制限は行いません。
注:このオプションは Windows NT または OS/2 上では使用できません。

locks nnn
アプリケーションが保持できるロック数を指定します。 -1 を指定すると、 管理プログラムはアプリケーションが保持するロック数の制限は行いません。

rowssel nnn
アプリケーションに戻される行数を指定します。 この値は、調整プログラム・ノードでは非ゼロとなります。 -1 を指定すると、管理プログラムは選択できる行数の制限は行いません。

uowtime nnn
作業単位 (unit of work) (UOW) が最初に活動状態になった時刻から経過可能な秒数を指定します。 -1 を指定すると、経過時間は制限されません。
注:sqlmon (データベース・システム・モニター スイッチ) API を使用して作業単位 (unit of work)スイッチを非活動化した場合には、 管理プログラムが作業単位 (unit of work)経過時間に基づいてアプリケーションを管理する機能に影響を与えます。 管理プログラムはモニターを使って、 システムについての情報を収集します。 データベース・マネージャー構成ファイルでスイッチをオフにすると、 インスタンス全体がオフになり、管理プログラムはそれ以上この情報を受け取りません。

idle nnn
接続において、指定された処置が行われる前に許されるアイドル状態の秒数を指定します。 -1 を指定すると、接続のアイドル時間は制限されません。

rowsread nnn
アプリケーションが選択できる行数を指定します。 -1 を指定すると、 アプリケーションが選択できる行数は制限されません。
注:この制限値は、rowssel と同じものではありません。 異なるのは、rowsread が結果セットを戻すために読み取りする必要のあった行数のカウントである点です。 読み取りされた行数にはエンジンによるカタログ表の読み取りが含まれるので、 索引使用時には行数が少なくなる可能性があります。

[action]
指定された制限の 1 つまたは複数を超えた場合に取る処置を指定します。 次のように処置を指定することができます。
注:制限を超えたときに action 文節が指定されていなかった場合には、管理プログラムは、 アプリケーションのために処理を行っているエージェントの優先順位を 10 倍低くします。

priority nnn
アプリケーションのために処理を行っているエージェントの優先順位の変更を指定します。 有効な値は -20 〜 +20 です。

このパラメーターを有効に使用するには、以下に注意してください。

  • UNIX ベースのプラットフォーム上では、 agentpri データベース・マネージャー・パラメーターを省略時値に設定する必要があります。 省略時値にしないと、このパラメーターが priority 文節を指定変更してしまいます。
  • OS/2 上および Windows NT プラットフォームでは、 agentpri データベース・マネージャー・パラメーターと priority の処置とを一緒に使用することができます。

force
アプリケーションにサービスを提供しているエージェントの強制停止を指定します。 (調整エージェントを終了する場合は、FORCE APPLICATION を出します。)

schedule [class]
スケジューリングによって、 すべてのアプリケーションにおける公平性を確保しながら同時に平均応答時間を最小化するという目的に向けて、 アプリケーション上で処理を行っているエージェントの優先順位の調整が行われます。

管理プログラムは、DB2 内部照会コンパイラーからの照会コスト見積もりを使用して、 アプリケーション上で処理を行うエージェントの優先順位を設定することによって、 スケジューリングを強制的に行います。 クラス・オプションが指定された場合は、規則によって選択されたアプリケーションはすべて、 それらの間同士でのみスケジュールされます。 このオプションが指定されなかった場合は、 管理プログラムは 1 つまたは複数のクラスを使用しますが、 スケジューリングは各クラス内で行います。

各クラス内では、アプリケーションの優先順位付けは以下に基づいて決められます。

  • クラス内のアプリケーションによって保持されるロック数。 (ロッキングによって他の多くのアプリケーションを待機させているアプリケーションには、 高い優先順位が与えられます。)
  • アプリケーションの年令 (経過時間)。 (システム内に長時間存在しているアプリケーションには、高い優先順位が与えられます。)
  • アプリケーションの残り実行時間の見積もり。 (終了が近いアプリケーションには、高い優先順位が与えられます。)

どのスケジュールの対象にもなっていないアプリケーションは、 最高の権限で実行されます。
注:sqlmon (データベース・システム・モニター スイッチ) API を使用してステートメント・スイッチを非活動化した場合には、 管理プログラムがステートメント経過時間に基づいてアプリケーションを管理する機能に影響を与えます。 管理プログラムはモニターを使って、 システムについての情報を収集します。 データベース・マネージャー構成ファイルでスイッチをオフにすると、 インスタンス全体がオフになり、管理プログラムはそれ以上この情報を受け取りません。

スケジュール処置には次のことが含まれます。

  • それぞれ異なるグループのアプリケーションが、 すべてのアプリケーションに平均に時間を分割することなく確実に時間を入手するようにします。

    たとえば、12 のアプリケーション (短いアプリケーション 3 つ、 中程度 5 つ、長いアプリケーション 6 つ) が同時に実行している場合、 これらは CPU を分割しているので、応答時間があまりないかもしれません。 データベース管理者は、中程度の長さのアプリケーションと、 長いアプリケーションの 2 つのグループを設定できます。 優先順位を使用して、管理プログラムはすべてのアプリケーションの実行を許可し、 大部分を占める 3 つの中程度のアプリケーションと 3 つの長いアプリケーションを、 同時に確実に実行します。 これを行うために、管理プログラム構成ファイルには、 中程度のアプリケーションに 1 つの規則、長いアプリケーションに別の規則が入っています。 以下に、この点を例証する管理プログラム構成ファイルの一部を示します。

    desc "Group together medium applications in 1 schedule class"
    applname medq1, medq2, medq3, medq4, medq5
    setlimit cpu -1
    action schedule class;
     
    desc "Group together long applications in 1 schedule class"
    applname longq1, longq2, longq3, longq4, longq5, longq6
    setlimit cpu -1
    action schedule class;
    
  • 複数のユーザー・グループのそれぞれ (たとえば、 組織上の部門) が確実に等しい優先度を獲得できるようにします。

    あるグループが多数のアプリケーションを実行している場合でも、 管理者は他のグループが自分のアプリケーション用に適度な応答時間を獲得できるようにすることができます。 たとえば、3 つの部門 (金融、在庫、企画) が関係している場合、 すべての金融ユーザーを 1 つのグループに、すべての在庫ユーザーを 2 つ目のグループに、 すべての企画ユーザーを 3 つ目のグループに入れることができます。 処理能力は 3 つの部門の間でより平均に、またはその逆に分割されます。 以下に、この点を例証する管理プログラム構成ファイルの一部を示します。

    desc "Group together Finance department users"
    authid tom, dick, harry, mo, larry, curly
    setlimit cpu -1
    action schedule class;
     
    desc "Group together Inventory department users"
    authid pat, chris, jack, jill
    setlimit cpu -1
    action schedule class;
     
    desc "Group together Planning department users"
    authid tara, dianne, henrietta, maureen, linda, candy
    setlimit cpu -1
    action schedule class;
    
  • 管理プログラムにすべてのアプリケーションをスケジュールさせます。

    クラス・オプションが処置に含まれていない場合、 管理プログラムはスケジュール処理の下に落とされるアプリケーションの数に基づいた、 独自のクラスを作成し、 アプリケーションが実行している照会に DB2 照会コンパイラーのコスト見積もりに基づいてアプリケーションを別のクラスに入れます。 管理者は、選択されるアプリケーションを限定しないことによって、 すべてのアプリケーションをスケジュールするように選択できます。 つまり、applname または authid 文節は提供されず、 setlimit 文節も制限を課しません。

注:制限を超えたときに action 文節が指定されていなかった場合には、管理プログラムは、 アプリケーションのために処理を行っているエージェントの優先順位を低くします。

複数の規則が 1 つのアプリケーションに適用される場合には、 構成ファイルの終わりに最も近い位置に置かれた規則がアプリケーションに適用されます。 例外なのは、規則の中の文節に -1 が指定された場合です。 この場合には、後続する規則の文節の値は、 それより前に同じ 文節に指定された値のみを指定変更します。 このとき、前に置かれた規則の他の文節は、有効なままになります。 たとえば、ある規則は、経過時間が 1 時間を超えるか、 選択された行数が 100 000 行を超えるかした場合 (すなわち、 rowssel 100000 uowtime 3600) には、 そのアプリケーションの優先順位を低くするよう指示しているとします。 また、後続する規則では、同じアプリケーションに無制限の経過時間を許している (すなわち、 uowtime -1) とします。 この場合、アプリケーションが 1 時間を超えて実行されたとしても、 優先順位は変更されません (uowtime -1uowtime 3600 を指定変更したからです) が、 選択された行数が 100 000 行を超えたときには、 優先順位は低くされます (rowssel 100000 が有効なままだからです)。

図 95 に、 構成ファイルの例を示します。

図 95. 管理プログラム構成ファイルの例

{ Wake up once a second, the database name is ibmsampl
 do accounting every 30 minutes.  }
interval 1; dbname ibmsampl; account 30;
 
desc "CPU restrictions apply 24 hours a day to everyone"
setlimit cpu 600 rowssel 1000000 rowsread 5000000;
 
desc "Allow no UOW to run for more than an hour"
setlimit uowtime 3600 action force;
 
desc 'Slow down a subset of applications'
applname jointA, jointB, jointC, quryA
setlimit cpu 3 locks 1000 rowssel 500 rowsread 5000;
 
desc "Have governor prioritize these 6 long apps in 1 class"
applname longq1, longq2, longq3, longq4, longq5, longq6
setlimit cpu -1
action schedule class;
 
desc "Schedule all applications run by the planning dept"
authid planid1, planid2, planid3, planid4, planid5
setlimit cpu -1
action schedule;
 
desc "Schedule all CPU hogs in one class which will control consumption"
setlimit cpu 3600
action schedule class;
 
desc "Slow down the use of db2 CLP by the novice user"
authid novice
applname db2bp.exe
setlimit cpu 5 locks 100 rowssel 250;
 
desc "During day hours do not let anyone run for more than 10 seconds"
time 8:30 17:00 setlimit cpu 10 action force;
 
desc "Allow users doing performance tuning to run some of
     their applications during lunch hour"
time 12:00 13:00 authid ming, geoffrey, john, bill
applname tpcc1, tpcc2, tpcA, tpvG setlimit cpu 600 rowssel 120000 action force;
 
desc "Some people should not be limited -- database administrator
  and a few others.  As this is the last specification in the
  file, it will override what came before."
authid gene, hershel, janet setlimit cpu -1 locks -1 rowssel -1 uowtime -1;
 
desc "Increase the priority of an important application so it always
      completes quickly"
applname V1app setlimit cpu 1 locks 1 rowssel 1 action priority -20;


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]