バッファー・プール・シミュレーションの実行

バッファー・プール・シミュレーションを実行するには、シミュレートされるバッファー・プールを有効にし、シミュレートされるさまざまなバッファー・プール・サイズの影響を調べます。

プロシージャー

バッファー・プール・シミュレーションを実行するには、次の手順に従います。

  1. IFCID 0002 の統計トレースを開始し、シミュレーションの結果が含まれるトレース・レコードをキャプチャーします。 例えば、次のようになります。
    -START TRACE(STAT) IFCID(2)

    あるいは、 手順5 で示したように、シミュレーション実行後にDISPLAY BUFFERPOOLコマンドを発行してシミュレーション情報を取得することもできます。

  2. シミュレートするバッファー・プールに対して ALTER BUFFERPOOL コマンドを発行します。 バッファー・プール名と SPSIZE オプションを設定する必要があります。 場合によっては、SPSEQT オプションを設定する必要もあります。 PGSTEAL オプションと VPSIZE オプションはシミュレーションに直接関係するわけではありませんが、シミュレーションを正常に実行するためにそれらのオプションの変更が必要になることもあります。

    ALTER BUFFERPOOL を発行する際は、以下のガイドラインに従って SPSIZE と SPSEQT を設定してください。

    SPSIZE 値
    SPSIZE は、バッファー・プール・サイズを一定量だけ増やしたときのバッファー・プールの動作をシミュレートするために使用します。 SPSIZEの値を選択するには、同期読み取り入出力が最も高い実バッファー・プールのVPSIZE値を検出します。 まず、バッファー・プール・サイズを増加させるSPSIZE値を、20%の小さな値で設定します。 例えば、VPSIZE のバッファーが現在 5000 の場合、SPSIZE を 1000 に設定し、バッファー・プール・サイズを 20% 増やしたときにどうなるかを確認します。

    SPSIZE の最初の値が小さすぎると、バッファー・プール・サイズを増やすことのメリットが過小評価されるおそれがあります。 シミュレートされるバッファー・プールのページは再び参照される前にスチールされてしまう可能性があるからです。

    一般的には、非常に大きな値をすぐに選択するより、シミュレーションを何回か行って SPSIZE 値を徐々に増やしていく方がうまくいきます。 Db2データベース・マネージャーはシミュレートされたバッファー・プールのバッファーを割り振りませんが、シミュレートされたバッファー・プール内のページを追跡するのにストレージは依然として必要です。 シミュレートされるバッファー・プールで使用されるストレージの概算量は、SPSIZE*4KB の 2% です。 例えば、SPSIZE が 6553600 の場合、約 500MB のストレージが必要です。 さらに、バッファー・プールに関する以下のシステム制限には、シミュレートされたバッファー・プールに使用されるストレージの量が含まれます。

    • 実ストレージの最大 2 倍の量
    • 1TB の最大値

    ページングと追加の CPU オーバーヘッドを避けるために、VPSIZE と同様、SPSIZE で指定するストレージ量の裏付けとなるだけの十分な実ストレージが存在する必要があります。

    SPSEQT 値
    最初のシミュレーションで設定する値が分からない場合、SPSEQT を指定しないでください。 SPSIZE にゼロ以外の値を指定して SPSEQT 値を設定しない場合、SPSEQT 値は VPSEQT 値と同じになります。 SPSIZE 値を増やす後続のシミュレーションで、順次アクセスされるページのバッファー数がバッファー・プール・サイズの増加に比例して増えることを望まない場合は、SPSEQT をより低い値に設定します。 SPSEQT 値に 0 を指定する場合、順次アクセスされるページはシミュレートされるバッファー・プールに移動されません。

    VPSIZE と PGSTEAL の以下の設定も必要です。

    VPSIZE 値
    バッファー・プール・シミュレーションを行っている間は VPSIZE を 0 に設定しないでください。 VPSIZE を 0 に設定すると、SPSIZE 値が 0 より大きい場合でも、実バッファー・プールとシミュレートされるバッファー・プールの割り振りが解除されます。
    PGSTEAL 値
    PGSTEAL 値は LRU でなければなりません。 バッファー・プール・シミュレーションは、最長未使用時間ページ・スチール・アルゴリズムでのみ機能します。 最長未使用時間ページ・スチール・アルゴリズムを既に使用しているバッファー・プールでのみシミュレーションを実行してください。
  3. オプション: 他のバッファプール用のシミュレーションを開始するためにALTER BUFFERPOOLを発行します

    一度に 3 つより多くのシミュレーションを開始しないでください。 バッファー・プール・シミュレーションは CPU オーバーヘッドを必要とします。このオーバーヘッドは、シミュレートされるバッファー・プールの数やそれぞれのサイズによって異なります。 追加の CPU オーバーヘッドは、スチールされるページに関する情報を仮想バッファー・プールからシミュレートされるバッファー・プールに移動する結果として生じます。

  4. シミュレートしているバッファー・プールで通常のアクティビティー量になるだけのワークロードを実行します。
  5. シミュレーション結果を取得するために、以下のいずれかのアクションを実行します。
    • DISPLAY BUFFERPOOL コマンドを発行して、結果を取得します。 以下に例を示します。
      -DISPLAY BUFFERPOOL(BP0) DETAIL
    • 手順1で開始した統計トレースのトレース記録をフォーマットします。
  6. 結果を分析します。 詳細はバッファプールシミュレーション結果をご覧ください。
  7. バッファー・プール・サイズを増やすことで読み取り入出力操作を節減できることが結果から分かる場合、SPSIZE(0) を使用して ALTER BUFFERPOOL を発行することで、シミュレートされるバッファー・プールに割り振られているストレージを解放します。 次に、 ステップ2 から開始し、より大きなバッファプールサイズと、より大きなまたはより小さなシーケンシャルスチールしきい値を指定します。 ステップ5でトレース記録を取得するためにトレースを停止した場合は、 ステップ1 からやり直してください。