ここでは、RERUNログ反映性能のチューニング方法について説明します。
反映常駐スレッドの多重度数とトランザクション結合数のチューニングを行うと、Symfoware Serverのテンポラリログ量が増加する可能性があります。
このため、RERUNログ反映性能のチューニングを行う際は、反映常駐スレッドの多重度数とトランザクション結合数を考慮したテンポラリログファイルの見積りを行い、見積った値が作成したテンポラリログファイルのサイズよりも小さいことを確認してください。
見積った値が作成したテンポラリログファイルのサイズよりも大きくなった場合は、以下のいずれかの対処を実施してください。
テンポラリログファイルのサイズを変更する。
反映常駐スレッドの多重度数とトランザクション結合数を見直す。
RERUNログ反映のコミット順序の保証単位(REF_APPLY_MODE)に“DSI”を選択した場合、RERUNログ反映処理では、トランザクションをDSIごとに分割し時系列に反映を行うため、反映常駐スレッド数を増やすことにより性能向上が可能です。
lxrepdrpfmコマンド(-r -p指定)によってRERUNログ反映性能情報を取得し、反映常駐スレッドビジー時間(項目名:EmptyTime)の値をもとに、反映常駐スレッドの多重度数のチューニングを行います。
lxrepdrrefコマンド実行時間(項目名:RefCmdTime)の値に近い場合
反映常駐スレッドの多重度数が不足している可能性があります。
RLP動作環境ファイルのREF_APPLY_MODEパラメタの反映常駐スレッド数を見直してください。
反映常駐スレッドの 多重度数を2から始めて、反映処理時間に効果があるまで増やします。
ただし、CPUコア数により、性能の向上は限界がありますので、最大のリソースを利用して反映性能を向上させる場合においても、その時点でチューニングが完了になります。
反映常駐スレッドビジー時間(項目名:EmptyTime)の値が0の場合
反映常駐スレッドの多重度数が過剰に指定されている可能性があります。同時に、反映常駐スレッド単位の反映時間(項目名:RefTime)が0のスレッドが存在する傾向があります。
反映常駐スレッドの多重度数が不足している場合と同様に、RLP動作環境ファイルのREF_APPLY_MODEパラメタの反映常駐スレッド数を見直してください。
注意
lxrepdrenaコマンドによるオンラインが失敗した場合は、反映常駐スレッドの多重度数が多すぎる可能性があります。RLP動作環境ファイルのREF_APPLY_MODEパラメタの反映常駐スレッド数を見直してください。
DSIの初期化は表のDSIごとに処理が行われるため、複写元システムのロググループ内で同時に実行するrdbfmtコマ ンドの多重度数を考慮して、RLP動作環境ファイルのREF_APPLY_MODEパラメタに指定する反映常駐スレッドの指定値を求めます。
上記で求めた反映常駐スレッドの多重度数より、複写元システムのrdbfmtコマンドの同時実行多重度数のほうが多い場合は、rdbfmtコマンドの同時実行多重度数を反映常駐スレッドの多重度数に指定してください。
特定のDSIにアクセスが集中した場合、反映常駐スレッド単位の反映時間(項目名:RefTime)が極端に大きな値のスレッドが存在する傾向があります。この場合は、DSI分割の見直しを行うことを推奨します。
多重度数をチューニングする場合は、以下のような目安があります。
多重度数 = CPUコア数 × 反映多重度係数
反映多重度係数は5を指定して、その値からチューニングを行うことを推奨します。
多重度数の最小値は2です。
RERUNログ反映のコミット順序の保証単位に“DSI”を選択した場合
複数のDSIにまたがるトランザクションをDSI単位に分割して処理を行っているため、反映常駐スレッドの多重度数が多い場合には、複写元システムと比較して、複写先システムの反映処理でのトランザクション数が増加する場合があります。
このため、DSI単位で複数のトランザクションを結合することでコミット回数を減少させ、性能向上を行うことが可能です。
lxrepdrpfmコマンド(-r -p指定)によってRERUNログ反映性能情報を取得し、以下の式が成り立つようにチューニングを行うことを推奨します。
これは複写元システムのトランザクション数と反映処理でのトランザクション数をなるべく同じにするチューニング方法です。この方法で求めた複写先システムのトランザクション結合数を指定して実行した反映処理性能よりも性能を上げる必要がある場合は、トランザクション結合数を増加させていくことで、チューニングを行ってください。
複写元システムのトランザクション数 × DSI数 = 複写先システムのトランザクション数 × 複写先システムのトランザクション結合数
1つのRLCに格納されるトランザクション数です。lxrepdrpfmコマンドで取得したRERUNログ反映性能情報のCapTrnNum の内容を示します。
複写元システムの1トランザクションが更新する表の平均DSI数です。
反映常駐スレッド単位の複写先システムのトランザクション数の全スレッドの合計値です。lxrepdrpfmコマンドで取得した RERUNログ反映性能情報のRefTrnNumの内容を示します。
RLP動作環境ファイルのRLP指定によるトランザクション結合数です。RLP動作環境ファイルのREF_APPLY_MODEパ ラメタに指定した値を示します。
RERUNログ反映のコミット順序の保証単位に“LOGGROUP”を選択した場合
複写元システムのデータベースにおけるトランザクションが同時に実行された場合でも、RERUNログ反映ではトランザクション毎のRERUNログ反映を1つの反映常駐スレッドにより逐次化して実行します。
そのため、複写先システムのデータベースに対する単位時間辺りのRERUNログ反映について、複数のトランザクションを結合することでコミット回数を減少させ、性能向上を行うことが可能です。
lxrepdrpfmコマンド(-r -p指定)によって、RERUNログ反映性能情報を取得し、以下の式が成り立つようにチューニングを行うことを推奨します。
複写元システムでの単位時間辺りの表の更新件数 ≦ 複写先システムでの単位時間辺りの表の更新件数
単位時間あたりの表を更新した件数の合計値です。
利用者プログラムの実測値または設計値から取得します。
Symfoware/RDBの機能を利用する場合は、rdbpsコマンドによるアプリケーションに関する入出力情報から、表のDSIのレコードを更新した件数を取得します。
単位時間あたりの反映常駐スレッド単位の複写先システムのRERUNログ数の合計値です。lxrepdrpfmコマンド(-r -p指定)を実行して取得したRERUNログ反映性能情報のRecNumの内容を示します。