メモリをチューニングする際によくある質問と、その回答について説明します。
DSIと共用バッファ(共用バッファプール)の関係について知りたい
Symfoware Serverでは、システム起動時に獲得するバッファプールのサイズを変更できるだけではなく、アクセス頻度の高い表(表のDSIやインデックスのDSI)に専用のバッファプールを開設し関係付けることができます。
共用バッファプールを特定のDSI専用に定義したり、業務アプリケーションに応じたバッファサイズとすることで、アクセス性能の向上が期待できます。
ただし、共用バッファプールとして確保するサイズ合計は、ほかのアプリケーションが必要とする実メモリ量と合わせても実メモリの範囲に収まるようにしてください。
なお、共用バッファの定義情報についてはrdbprtbfコマンドを、性能情報についてはrdbsarコマンドを使用することで参照できます。
参照
詳細は、“RDB運用ガイド”の“業務の運用”を参照してください。
また、関連する質問として下記の“アプリケーションと共用バッファ(共用バッファプール)の関係について知りたい”“共用バッファ(共用バッファプール)はデータベースを検索するときにどのように利用されるか?”があります。必要に応じて参照してください。
ポイント
共用バッファプールの利用方法について
共用バッファは利用目的に応じて細分化できます。
6つのサイズ(1K、2K、4K、8K、16K、32K)を選択できます。
表(表のDSI、インデックスのDSIそれぞれ)ごとに指定できます。
複数の表で1つの共用バッファプールを使用するように指定できます。
インデックスの定義と組み合わせることにより、INDEX部とBASE部それぞれに共用バッファプールを割り付けできます。
共用バッファには以下の2種類の利用方法があります。
任意に共用バッファを開設しDSI との対応関係を登録
rdbcrbfコマンドにより共用バッファの開設を実施し、rdbconbfコマンドにより開設した共用バッファとDSIとの対応関係を登録します。(共用バッファとDSIとの対応関係の登録にはDSI定義時のページサイズと共用バッファ開設時のページサイズが一致していなければなりません)
本設定はSymfoware Serverの停止を行った場合、すべてクリアされますので開始後に再設定する必要があります。
Symfoware Serverで予め用意されているデフォルトバッファ
任意に共用バッファを開設していない場合は、RDB構成パラメタファイルに設定されているRDBSYSBUFパラメタの指定先にあるrdbbufファイルの内容が有効となります。
アプリケーションと共用バッファ(共用バッファプール)の関係について知りたい
データベースの内容(レコード)は、データベースのバッファである共用バッファに読込まれ、参照や更新が行われます。もし複数のアプリケーションが同一のレコードを参照するならば、1つの共用バッファ上で参照されます。つまり、共用バッファとは、複数のアプリケーションで共用されるデータベースのバッファのことです。
参照
詳細は、“RDB運用ガイド”の“業務の運用”を参照してください。
また、関連する質問として上記の“DSIと共用バッファ(共用バッファプール)の関係について知りたい”および下記の“共用バッファ(共用バッファプール)はデータベースを検索するときにどのように利用されるか?”があります。必要に応じて参照してください。
ポイント
共用バッファプールについて
共用バッファ(共用バッファプール)はデータベースを検索するときにどのように利用されるか?
共用バッファは、データベースのアクセス効率の向上(データベースへのI/O回数の削減)を目的としたデータベースのバッファ(キャッシュ)です。Symfoware Serverでは、共用バッファのヒット率を向上させるため、LRU方式で共用バッファの空き管理を行っています。アクセスしなくなった共用バッファは逐次追い出してほかのデータのアクセスにまわすような動きで使用されます。
参照
詳細は、“RDB運用ガイド”の“業務の運用”を参照してください。
また、関連する質問として上記の“DSIと共用バッファ(共用バッファプール)の関係について知りたい”“アプリケーションと共用バッファ(共用バッファプール)の関係について知りたい”があります。必要に応じて参照してください。
ポイント
デフォルトバッファ と ユーザー作成共用バッファについて
データベースのバッファである共用バッファには、Symfoware Serverがあらかじめ用意している共用バッファ(デフォルトバッファ)と、共用バッファプールの開設と対応関係登録で作成される共用バッファがあります。
Symfoware Serverがあらかじめ用意している共用バッファ(デフォルトバッファ)
共用バッファプールの開設と対応関係登録で作成される共用バッファ(ユーザー作成共用バッファ)
共用バッファの空き管理については、デフォルトバッファとユーザー作成共用バッファとで区別はありませんが、以下の点から、Symfoware Serverでは、ユーザー作成共用バッファの利用を強く推奨しています。
ユーザー作成共用バッファは、DSIと共用バッファの関係や共用バッファの量をユーザーが定義することによって、効率の良いデータベースアクセスを実現可能としています。
さらに、ユーザー作成共用バッファの開設(rdbcrbfの実行)では、安全率と危険率を指定できます。
安全率と危険率を指定することによってメモリの常駐量をコントロールすることができます。
そのため複数ユーザーからのアクセスに対してもレスポンスタイムのバラつきを抑えることができます。
利用頻度の高いテーブルやインデックスには、専用の共用バッファを割り当てるようにしてください。
とくにインデックスは利用頻度が高くなるので、インデックスには専用のバッファを割り付け、さらにバッファ枚数を増やし、できるだけバッファ上で処理するようにしてください。