3. 性能チューニングを怠るべからず
3.8. アプリケーションのレスポンス悪化 ~バッファ枯渇~
3.8.1. 留意点
【概要】
アプリケーションのレスポンス悪化の1つの原因として、バッファ枯渇が考えられます。
【詳細】
バッファの枯渇が発生しているかどうかは、rdbsarコマンドで表示されるAlarm、DryUp で判断できます。
Alarm … バッファ使用量が、バッファプールの危険率に到達した回数。
(※バッファプールの危険率はrdbcrbfコマンドで設定可能)
DryUp … バッファ枯渇が発生した回数
rdbsar -b -eの出力例は以下のとおりです。
"_#DEFAULT#"はデフォルトバッファを示す名前。POOL1が共用バッファです(共用バ ッファの名前は、rdbcrtbfで指定します)。
以下の例では、ページサイズ1Kのデフォルトバッファで、危険率(Alarm)に45回達してお り、バッファ枯渇(DryUp)が4回発生しています。
[例] rdbsar -b -e
RDBII rdbsar DATE:2014/07/26 TIME:16/51/16
Time BpName PgSize BufNum UseNum WbPage TbPage Alarm HitRate[%] DryUp MinFree
16:51:16 POOL1 1024 1000 0 0 0 0 0 0 1000
_#DEFAULT# 32768 32 2 0 0 0 91 0 30
_#DEFAULT# 16384 32 1 0 1 0 50 0 31
_#DEFAULT# 8192 32 15 6 70 6 93 0 7
_#DEFAULT# 4096 256 12 0 12 0 98 0 244
_#DEFAULT# 2048 32 0 0 0 0 0 0 32
_#DEFAULT# 1024 32 20 0 446 45 89 4 7
Symfoware Server べからず集
対処方法
バッファ枯渇は、以下の①②のどちらかの方法で対処可能です。
① バッファの枚数を増やす
バッファの枚数を増やす方法は、以下の2つが存在します。
a), b)の方法のうち、a)共用バッファの枚数を増やす方法を推奨します(※)。詳細
は、マニュアル“Symfoware Server RDB運用ガイド”の“共用バッファのチュ ーニング”を参照してください。
※デフォルトバッファはRDBシステム全体で1つの領域を使用するため、RDB に対して同時に実行されている別の処理要求からの影響を受ける場合がありま す。それに対して共用バッファは、使用する DSI を限定しているため他のDSI に対する処理の影響を受けず、DSI単位で安定的にシステム運用が可能なためで す。
a) 共用バッファの枚数を増やす(rdbcrbfコマンド, rdbconbfコマンド)
共用バッファは、rdbcrbfコマンドで共用バッファを開設し、rdbconbfコマン ドでDSIと共用バッファプールの対応関係を登録することで、使用できます。
rdbcrbfコマンド, rdbconbfコマンドの実行例は以下のとおり。
[例] rdbcrbfコマンドで共用バッファ識別子POOL1を開設し、rdbconbfコマ ンドで在庫表DSIと共用バッファ識別子POOL1の対応関係を登録する
rdbcrbf -a 70 -s 50 POOL1 1K 1000
rdbconbf -i 在庫管理DB.在庫表DSI POOL1 b) デフォルトバッファの枚数を増やす
RDB構成パラメタファイルのRDBSYSBUFで、指定するディレクトリ配下の テキストファイル"rdbbuf"の定義内容を手動で修正します。
[例]ページサイズ1Kのデフォルトバッファを10000枚に設定する場合 BUFFER1K = 10000
② DSIの情報を全てメモリ上に乗せる(rdbresidentコマンド)
対象のDSIのサイズが小さい場合、または、システムの空きメモリ量が多い場合 に推奨します。
rdbresidentコマンドの実行例は以下のとおり。
[例] 在庫表DSIをメモリに常駐する
rdbresident -mon -i 在庫管理DB.在庫表DSI
[注意]
共用バッファやデフォルトバッファに使用すべきメモリ量は、データベースの使い方 やアプリケーションの実行多重度により大きく変動しますが、一般的なケースでは、
そのマシンに実装される実メモリ、または、Symfoware/RDB処理に割り当てられる
Symfoware Server べからず集 処理で使用するソートやワークのメモリ量が少なくなることからアプリケーションの レスポンスが悪くなる場合があります。
3.8.2. 未対処時の影響 (1) 現象分類
性能劣化 (2) 現象/原因
【現象】
オンライン業務の処理が遅い。
【原因】
バッファの枯渇が発生しているためです。
3.8.3. 備考
Symfoware Server RDB運用ガイド 13.2.1 共用バッファのチューニング
Symfoware Server コマンドリファレンス 2.10 rdbconbf
2.12 rdbcrbf 2.54 rdbresident 2.58 rdbsar
Symfoware Server べからず集