スケーラブルデータベースサーバ HiRDB Version 8 システム運用ガイド(UNIX(R)用)
通常,排他制御の処理はサーバごとに一元管理されており,排他制御用プールは一つです。そのため,トランザクションの多重実行数と稼働率が高いシステムでは,排他待ち数がトランザクションの常時多重実行数と同じになり,排他制御の操作に時間が掛かってしまいます。
この状態は,排他制御用プールを複数に分割して,排他制御の処理を分散させることで回避できます。排他制御用プールを分割したものを排他制御用プールパーティションといいます。
それぞれの排他資源が,異なる排他制御用プールパーティションを使用すると,排他制御処理が分散され,排他待ち数が少なくなる場合があります。これによって,排他制御に掛かる時間が減るため,SQLの実行時間が短縮できます。排他制御処理の分散の例を次の図に示します。
図9-5 排他制御処理の分散
ただし,特定の排他資源に対して処理が集中した場合は,排他制御処理は分散されません。この場合,排他待ち数は変わらないため,SQLの実行時間は短縮できません。
pd_lck_pool_partitionオペランド(フロントエンドサーバの場合はpd_fes_lck_pool_partitionオペランド)に排他制御用プールの分割数を指定します。これによって,排他制御処理を分散させることができます。
pd_lck_pool_partitionオペランド及びpd_fes_lck_pool_partitionオペランドについては,マニュアル「HiRDB Version 8 システム定義」を参照してください。
指定値を決定する手順を次の図に示します。
図9-6 pd_lck_pool_partitionオペランドの指定値を決定する手順
トランザクションの多重実行数に従って,排他制御用プールパーティション数を指定します。指定値の目安を次に示します。
排他制御用プールパーティション数=トランザクションの多重実行数÷50
また,初期構築以降にチューニングした場合,共用メモリの使用量が変わります。そのため,チューニングする可能性がある場合は,事前に共用メモリの使用量を計算して必要な物理メモリの確保,及びOSパラメタの設定をすることを推奨します。
排他制御用プールパーティション数をチューニングする場合は,次の情報が必要になります。
実際に業務内容を想定した多重実行数と稼働率でアプリケーションを実行し,チューニング情報を取得してください。取得したチューニング情報を基に排他制御用プールパーティション数を徐々に増加しながら,業務アプリケーション全体でSQL実行時間の合計が最も短くなる排他制御用プールパーティション数を設定してください。
ただし,次に示す場合は排他制御用プールパーティション数をチューニング前の値に戻して,ほかの方法で性能向上を図ってください。
なお,排他制御処理を分散させた場合,ハッシュ分割によって排他資源ごとに使用する排他制御用プールパーティションを決定します。そのため,対象となる排他資源によっては,使用する排他制御用プールパーティションに偏りが発生することがあります。使用する排他制御用プールパーティションが偏ると,次の現象が発生するおそれがあります。
使用する排他制御用プールパーティションに偏りが発生しているかどうかは,pdls -d lck -p -eコマンドを実行すると表示されます。排他制御用プールパーティションごとの最大使用率が,テーブルごとに大きく異なる場合は,排他制御用プールパーティションに偏りが発生しています。
排他制御処理を分散させた場合のSQLごとのメリット及びデメリットを次の表に示します。
表9-4 排他制御処理を分散させた場合のメリット及びデメリット
SQL | 排他制御用プールパーティション数を増やした場合 | 排他制御用プールパーティション数を減らした場合 | ||
---|---|---|---|---|
メリット | デメリット | メリット | デメリット | |
処理完了時にCOMMIT及びROLLBACKをしないSQL(ほとんどの操作系SQL及び制御系SQLの一部など) | 多重実行時のSQL性能が向上します。 | SQL単体の性能が劣化します。 | SQL単体の性能が向上します。 | 多重実行時のSQLの性能が劣化します |
処理完了と同時にCOMMIT又はROLLBACKをするSQL(COMMIT,ROLLBACK,定義系SQL,PURGE TABLEなど) | − | 多重実行時のSQLの性能が劣化します。また,SQL単体の性能も劣化します。 | 多重実行時のSQLの性能が向上します。また,SQL単体での性能も向上します。 | − |
(凡例) −:該当しません。
排他制御処理を分散させると,排他制御が使用する管理情報を排他制御用プールパーティション数分追加するため,ユニットコントローラ用共用メモリのサイズが増加します。ユニットコントローラが使用する共用メモリの計算式については,マニュアル「HiRDB Version 8 システム導入・設計ガイド」を参照してください。排他制御用プールパーティション数を増やす場合は,ユニットコントローラ用共用メモリのサイズの増加によって,物理メモリやOSパラメタの指定値が不足しないよう,必要に応じてシステム構成を変更してください。
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.