スケーラブルデータベースサーバ HiRDB Version 8 システム定義(Windows(R)用)

[目次][索引][前へ][次へ]

2.2.24 グローバルバッファに関するオペランド

129) pd_dbbuff_lru_option = SEPARATE | MIX
グローバルバッファのLRU管理方式を指定します。ただし,次のどちらかに該当する場合は無条件にMIXを仮定します。
  • pd_dbsync_pointにcommitを指定している場合
  • pd_dbbuff_binary_data_lruにNを指定している場合
SEPARATE:
参照バッファ,及び更新バッファをそれぞれ独立したLRUで管理します。グローバルバッファの不足時には,グローバルバッファ内のアクセスした参照バッファの中で,最も古いバッファがメモリから追い出されます。オンライン業務のように1トランザクション当たりの参照,更新件数が比較的少ない場合に指定します。
MIX:
グローバルバッファを一括したLRUで管理します。グローバルバッファの不足時には,グローバルバッファ内のアクセスしたバッファで,最も古いバッファがメモリから追い出されます。オンライン業務とバッチ業務など,大量検索,大量更新が共存する場合に指定します。
 
グローバルバッファのLRU管理方式については,マニュアル「HiRDB Version 8 解説」を参照してください。
《ほかのオペランドとの関連》
pd_sysdef_default_optionオペランドにv6compatible又はv7compatibleを指定している場合,このオペランドの省略値はSEPARATEになります。

 

130) pd_dbbuff_binary_data_lru = Y | N
UAPがアクセスするバイナリデータに対してグローバルバッファのLRU管理を行うかどうかを指定します。UAPがアクセスするバイナリデータのLRU管理抑止設定については,マニュアル「HiRDB Version 8 システム導入・設計ガイド」を参照してください。
Y:
バイナリデータが格納された分岐行ページにLRU管理を適用して,グローバルバッファ上にキャッシュします。
N:
バイナリデータが格納された分岐行ページにLRU管理を適用しないで,アクセス頻度に関係なく最も古くアクセスしたページとしてグローバルバッファ上にキャッシュします。
ただし,基本行ページはLRU管理を適用してグローバルバッファ上にキャッシュします。
 
グローバルバッファを使用してサイズが大きいバイナリデータに大量にアクセスするUAPを実行する場合,バイナリデータをグローバルバッファにキャッシュするために,グローバルバッファにキャッシュされた直近の内容がメモリから追い出され,一時的に性能を低下させてしまうことがあります。その場合,サイズが大きいバイナリデータのアクセス頻度が低いのであれば,LRU管理を抑止することによって性能低下を回避できます。
それぞれの指定値によるLRU管理,メリット及びデメリットを次の表に示します。
項目 オペランドの指定値
Y N
LRU管理 すべてのグローバルバッファをLRUで管理し,グローバルバッファが不足したときは,グロ−バルバッファプール内で最も古くアクセスしたグローバルバッファをメモリから追い出します。 バイナリデータが格納された分岐行ページのグローバルバッファのLRU管理を抑止し,最も古くアクセスしたページとしてキャッシュします。グローバルバッファが不足したときは,バイナリデータが格納された分岐行ページのグローバルバッファをメモリから追い出します。
メリット アクセスデータの種類に関係なく,グローバルバッファを均等に使用するため,UAPの性能が偏りません。 サイズが大きいバイナリデータに連続してアクセスしても,グローバルバッファからバイナリデータを優先的に追い出すため,バイナリデータ以外の検索性能を維持できます。
デメリット サイズが大きいバイナリデータに連続してアクセスするとグローバルバッファから直近にアクセスしたデータが追い出されるため,バイナリデータ以外の検索性能が低下します。
  • サイズが大きいバイナリデータにアクセスするUAPは,バッファヒット率が低くなります。それによって,入出力回数が増加し,レスポンス性能が低下する可能性があります。
  • バイナリデータの更新時に,バイナリデータの分岐行の追い出しが多発することでシステムログ量が増加します。
《指定値の目安》
  • 通常はこのオペランドを指定しないでください。
  • バイナリデータにアクセスしないで,蓄積するだけのシステムの場合は,Nを指定してください。バイナリデータに頻繁にアクセスするシステムの場合,このオペランドにNを指定するとデメリットの影響が大きいので適用するときは十分検討してください。
  • BINARY型やBINARY型の属性を含む抽象データ型,及びXML型などのサイズの大きなバイナリデータを含む表が存在するシステムの場合,サイズの大きなバイナリデータにほとんどアクセスしないときは,このオペランドにNを指定してください。バイナリデータが格納されたページをアクセス頻度に関係なく優先的にグローバルバッファから追い出し対象とするため,バイナリデータ以外のデータ格納ページがグローバルバッファから追い出される頻度を少なくできます。
《クライアント環境定義との関連》
クライアント環境定義のPDDBBUFLRUにNOを指定した場合は,このオペランドの指定に関係なく,指定したUAPでアクセスするすべてのデータのLRU管理を抑止します。
《ほかのオペランドとの関連》
pd_dbbuff_lru_optionオペランドにSEPARATEを指定しても,このオペランドでNを指定すると,pd_dbbuff_lru_optionオペランドにMIXを仮定します。

 

131) pd_dbbuff_modify = Y | N
HiRDBの稼働中にpdbufmodコマンドでグローバルバッファを動的変更するかどうかを指定します。グローバルバッファの動的変更については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。
Y:グローバルバッファを動的変更します。
N:グローバルバッファを動的変更しません。
《前提条件》
このオペランドにYを指定する場合(グローバルバッファを動的変更する場合)はHiRDB Advanced High Availabilityが必要になります。
《ほかのオペランドとの関連》
このオペランドは次に示すオペランドと関連があります。
  • SHMMAX
  • pdbuffer
  • pd_max_add_dbbuff_no
  • pd_max_add_dbbuff_shm_no

 

132) pd_dbbuff_lock_release_detect = pipe | interval | switch
グローバルバッファへのアクセス時,グローバルバッファの排他獲得処理が発生します。この排他獲得処理で処理待ちになったプロセスが,グローバルバッファの排他が解除されたことを検知する処理方式をこのオペランドで指定します。このオペランドは同一グローバルバッファに対するアクセス頻度が高いときの処理性能に影響します。このオペランドの各指定値の処理方式と特徴を次に示します。
指定値 HiRDBの処理方式と特徴 特徴
レスポンス
タイム
CPU使用率
pipe 排他解除プロセスから排他獲得待ちプロセスに,パイプファイルを使用して排他の解除を通知します。
レスポンスタイムがジョブ多重度の影響を受けません。そのため,interval又はswitchを指定したときに比べてレスポンスタイムが一定しています。
長い 低い
interval 排他が掛けられているかを排他獲得待ちプロセスが定期的にチェックします。
レスポンスタイムがジョブ多重度の影響を受けます。そのため,ジョブ多重度が大きくなれば,レスポンスタイムも長くなります。
短い 高い
switch 基本的な処理方式はintervalと同じです。
intervalを指定したときに比べて,CPUを効果的に利用するため,CPU使用率がintervalを指定したときに比べて低くなります。
ただし,intervalを指定したときに比べてチューニングが難しくなります。
短い
レスポンスタイム及びCPU使用率についてはあくまで一般的な傾向です。実行環境やpd_dbbuff_lock_interval又はpd_dbbuff_lock_spn_countオペランドの値によって変わることがあります。
《指定値の目安》
  • UAPの多重実行性能が単体性能に比べて著しく低い場合にswitchを指定すると,性能が向上することがあります。
  • interval又はswitchのどちらを指定した方がよい(性能が向上する)かは,OSの種類,マシン性能,UAPの処理内容,及びUAPの多重実行数などによって変わります。ただし,一般的にはswitchを指定した方が比較的安定した性能が得られます。
《ほかのオペランドとの関連》
このオペランドにinterval又はswitchを指定した場合は,次のオペランドの指定を検討してください。
  • pd_dbbuff_lock_spn_count
  • pd_dbbuff_lock_interval

 

133) pd_dbbuff_lock_spn_count = 排他獲得待ち処理中のスピン回数
〜<符号なし整数>((0〜2147483646))《100》
pd_dbbuff_lock_release_detectオペランドにinterval又はswitchを指定した場合の排他獲得待ち処理中のスピン回数を指定します。
グローバルバッファ用の排他獲得処理の概要を次に示します。このオペランドには1の繰り返し回数を指定します。
  1. グローバルバッファ用の排他が解除されている場合は排他を獲得します。獲得できた場合は処理を終了しますが,獲得できない場合はこのオペランドに指定した回数まで同処理を繰り返します。
  2. 1.で獲得できなかった場合,pd_dbbuff_lock_intervalオペランドに指定した時間だけスリープ(一定時間処理を待つこと)します。
  3. 1.に戻ります。
《前提条件》
pd_dbbuff_lock_release_detectオペランドにinterval又はswitchを指定している必要があります。
《指定値の目安》
マニュアル「HiRDB Version 8 システム運用ガイド」の「グローバルバッファの排他処理の排他競合待ち発生率」を参照してオペランドの値を決定してください。
《ほかのオペランドとの関連》
このオペランドを指定した場合は,pd_dbbuff_lock_intervalオペランドの指定を検討してください。

 

134) pd_dbbuff_lock_interval = 排他獲得待ち処理中のインターバル時間
〜<符号なし整数>((0〜2147483647))《1》(単位:ミリ秒)
pd_dbbuff_lock_release_detectオペランドにinterval又はswitchを指定した場合の排他獲得待ち処理中のインターバル時間を指定します。
グローバルバッファ用の排他獲得処理の概要を次に示します。このオペランドには2のスリープ時間を指定します。
  1. グローバルバッファ用の排他が解除されている場合は排他を獲得します。獲得できた場合は処理を終了しますが,獲得できない場合はpd_dbbuff_lock_spn_countオペランドに指定した回数まで同処理を繰り返します。
  2. 1.で獲得できなかった場合,このオペランドに指定した時間だけスリープ(一定時間処理を待つこと)します。
  3. 1.に戻ります。
《前提条件》
pd_dbbuff_lock_release_detectオペランドにinterval又はswitchを指定している必要があります。
《指定値の目安》
マニュアル「HiRDB Version 8 システム運用ガイド」の「グローバルバッファの排他処理の排他競合待ち発生率」を参照してオペランドの値を決定してください。

 

135) pd_dbbuff_wait_interval = グローバルバッファの占有状態の調査間隔
〜<符号なし整数>((0〜2147483647))(単位:ミリ秒)
このオペランドはHiRDB/パラレルサーバ限定のオペランドです。
グローバルバッファの占有状態を調査する間隔を指定します。また,このオペランドを指定すると,グローバルバッファの占有状態を調査する方式が変わります。
このオペランドを指定していない場合
次に示す処理方式になります。
[図データ]
このオペランドを指定している場合
次に示す処理方式になります。
[図データ]
《指定値の目安》
次に示す条件をすべて満たす場合にこのオペランドを指定してください。性能が向上することがあります。なお,このオペランドを指定する場合は通常1を指定します。
  • グローバルバッファの排他待ちが発生している(pdbuflsコマンドの実行結果のWAITLで確認できます)
  • CPU使用率を高くしても性能を良くしたい
このオペランドに1を指定したため,CPU使用率が高くなり過ぎた場合は,値を大きくしてください。また,このオペランドに1を指定してもCPU使用率に余裕がある場合は,pd_dbbuff_wait_spn_countオペランドの値を大きくしてください。性能が向上することがあります。

 

136) pd_dbbuff_wait_spn_count = グローバルバッファの占有状態調査のスピンループ回数上限値
〜<符号なし整数>((0〜2147483646))《0》
このオペランドはHiRDB/パラレルサーバ限定のオペランドです。
グローバルバッファの占有状態の調査処理中に発生する,インターバルループ内のスピンループ回数の上限値を指定します。詳細については,pd_dbbuff_wait_intervalオペランドの説明を参照してください。
《指定値の目安》
通常は,このオペランドを指定する必要はありません。pd_dbbuff_wait_intervalオペランドに1を指定している場合にこのオペランドを指定してください。

 

137) pd_dbbuff_rate_updpage = デファードライトトリガの要求比率
〜<符号なし整数>((1〜100))(単位:%)
デファードライトトリガのトリガ契機を更新バッファ比率で指定します。
《指定値の目安》
通常はこのオペランドを省略してください。デファードライトの書き込み処理がシンクポイントダンプ取得間隔時間内で終了しない場合など,更新バッファ数を減らし,更新バッファヒット率を多少抑えてでも書き込み時間を短縮したいときにこのオペランドを指定します。指定する場合は,50%(HiRDBが設定する初期値)を目安にし,マニュアル「HiRDB Version 8 システム運用ガイド」の「デファードライト処理のチューニング」及び「デファードライト処理適用時のシンクポイント処理時間のチューニング」を参照してオペランドの値を決定してください。
《ほかのオペランドとの関連》
このオペランドは,pdbufferオペランドの-yオプションと次に示す関係があります。
  • pd_dbbuff_rate_updpageオペランドの指定値は全グローバルバッファに適用されます。
  • pdbufferオペランドの-yオプションの指定値はグローバルバッファごとに適用されます。
  • pdbufferオペランドの-yオプションの指定値が優先されます。
  • pdbufferオペランドの-yオプションを指定しない場合,デファードライトトリガ契機の更新バッファ面数は,このオペランドの指定によって次のように異なります。
    pd_dbbuff_rate_updpageオペランドの指定 デファードライトトリガ契機の更新バッファ面数
    あり グローバルバッファ面数×pd_dbbuff_rate_updpageオペランドの指定値
    なし HiRDBが自動計算します。

 

138) pd_dbbuff_trace_level = グローバルバッファ制御情報トレース取得レベル
〜<符号なし整数>((0〜2147483647))《0》
グローバルバッファ制御情報トレースの取得レベルを符号なし整数で指定します。取得レベルは,グローバルバッファ制御情報トレース取得機能の各機能に対応したレベル値を合計して算出します。0を指定した場合,グローバルバッファ制御情報トレースを取得しません。グローバルバッファ制御情報トレース取得機能とレベル値の対応を次に示します。グローバルバッファ制御情報トレース取得機能の詳細については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。
グローバルバッファ制御情報トレース取得機能 レベル値
シンクポイント出力同期制御情報取得機能 1
《指定値の目安》
通常は,このオペランドを指定する必要はありません。障害調査などで保守員にこのオペランドの指定を依頼された場合は,保守員の指示に従って指定してください。