2.95.1 pdstbeginの形式と規則
(1) 機能
ホスト名で指定したサーバマシンにあるユニットの統計情報を,統計ログファイルに出力します。統計情報の出力を停止したい場合は,pdstendコマンドを実行します。
統計情報は,各ホストのpdstj1,又はpdstj2という名称の統計ログファイルに出力されます。
出力した統計情報は,統計解析ユティリティの入力となります。統計解析ユティリティについては,「統計解析ユティリティ(pdstedit)」を参照してください。
(2) 実行者
HiRDB管理者が実行できます。
(3) 形式
(a) HiRDB/シングルサーバの場合
pdstbegin 〔-k 統計情報種別〔,統計情報種別〕…〕 〔-m システム稼働統計情報出力時間間隔〕 〔-I データベースの入出力統計情報出力時間間隔〕 〔-D 〔データベースの入出力統計情報オプション 〔,データベースの入出力統計情報オプション〕〕〕 〔{-a|-s サーバ名〔,サーバ名〕…}〕 〔-w〕
(b) HiRDB/パラレルサーバの場合
pdstbegin 〔-k 統計情報種別〔,統計情報種別〕…〕 〔-m システム稼働統計情報出力時間間隔〕 〔-I データベースの入出力統計情報出力時間間隔〕 〔-D 〔データベースの入出力統計情報オプション 〔,データベースの入出力統計情報オプション〕〕〕 〔{-x ホスト名|-u ユニット識別子}〕 〔{-a|-s サーバ名〔,サーバ名〕…}〕 〔-w〕
(4) オプション
(a) -k 統計情報種別 〜《sys》
- sys:
-
システムの稼働に関する統計情報
- uap:
-
UAPに関する統計情報
- sql:
-
SQLに関する統計情報
- sqh:
-
SQL文の履歴に関する統計情報(発行された操作系SQL,定義系SQL,及びLOCK文とSQLに関する統計情報)
この統計情報は,SQLに関する統計情報出力が指定されている場合に出力されます。
- buf:
-
グローバルバッファプールに関する統計情報
- fil:
-
データベース操作に関するHiRDBファイルの統計情報
- dfw:
-
デファードライト処理に関する統計情報
- idx:
-
インデクスに関する統計情報
- sop:
-
SQL静的最適化に関する統計情報
- dop:
-
SQL動的最適化に関する統計情報
- pcd:
-
SQLオブジェクト実行に関する統計情報
- obj:
-
SQLオブジェクト転送に関する統計情報(HiRDB/パラレルサーバの場合だけ有効)
- dio:
-
データベースの入出力に関する統計情報
- all:
-
sqh,pcd,及びobjを除く上記すべての統計情報
(b) -m システム稼働統計情報出力時間間隔 〜<符号なし整数>((1〜1440))《10》(単位:分)
システムの稼働に関する統計情報(-k sys指定)を統計ログファイルに出力する場合,情報を出力する時間間隔を分単位で指定します。
(c) -I データベースの入出力統計情報出力時間間隔 〜<符号なし整数>((10〜3600))《60》(単位:秒)
データベースの入出力に関する統計情報(-k dio指定)を統計ログファイルに出力する場合,情報を出力する時間間隔を秒単位で指定します。
指定時間間隔でデータベースの入出力が1回も発生しなかった場合は,統計ログファイルを出力しません。
-k dioの指定がない場合は,このオプションを無視します。
データベースの入出力統計情報出力中にpdstbegin -Iコマンドを実行すると,コマンド実行時点を新たな時間間隔の開始時刻として設定します。情報を出力する時間間隔を次の図に示します。
統計情報出力時間間隔が短くなるに従って統計ログ出力量は増え,統計ログバッファのスワップ頻度が増すため,システム負荷が高くなります。このため,詳細な調査が必要な場合にだけ省略値より短い出力時間間隔へ変更し,情報取得後は変更前の値に戻してください。
(d) -D 〔データベースの入出力統計情報オプション〔,データベースの入出力統計情報オプション〕〕
データベースの入出力に関する統計情報の計測動作を制御するオプションです。-k dioの指定がない場合は,このオプションを無視します。
このオプションでは,次の項目を制御できます。
-
入出力時間の計測頻度
-
統計情報の出力量
各項目に対応するオプション値指定有無による動作差異を次の表に示します。
指定値 |
動作 |
メリット |
デメリット |
---|---|---|---|
指定なし |
RDエリアを構成する各HiRDBファイルに発生した入力と出力に対して,それぞれ発生順に秒間100回の入出力時間を計測します。 |
性能影響を最小限に抑えられます。 |
RDエリアを構成する各HiRDBファイルに発生した入力と出力に対して,それぞれ秒間101回目以降については入出力時間を計測しません。 |
everyio |
RDエリアを構成するHiRDBファイルに発生した入出力に対して,すべての入出力時間を計測します。 |
入出力情報を漏れなく取得できます。 |
入出力時間計測のオーバヘッドによって,トランザクション性能が劣化します。 |
everyio指定時は,トランザクション実行中のRDエリアに発生するすべての入出力の時間を計測するため,オーバヘッドが増加します。事前にテストをして,本番業務に性能上問題がないと判断した場合だけ指定してください。
指定値 |
動作 |
メリット |
デメリット |
---|---|---|---|
指定なし |
|
1回の出力契機の統計ログサイズが固定であるため,ディスク消費量が少なく,統計ログバッファのスワップ処理多発による性能影響が少なくなります。 |
それぞれのユニットで上位10ファイルの情報しか出力しないため,RDエリアを構成するHiRDBファイルすべての入出力の情報は取得できません。 |
everyfile |
出力時間間隔内にアクセスのあったRDエリアを構成するHiRDBファイルの入出力情報をすべて出力します。 |
すべてのRDエリア構成ファイルの入出力傾向を漏れなく出力できます。 |
1回の出力契機の統計ログサイズが固定でないため,ディスク消費量が多く,バッファのスワップ処理多発による性能への影響が大きくなります。 |
everyfile指定時は,1回の出力契機での統計ログの出力量が固定ではありません。システム共通定義のpd_stj_file_sizeオペランドには,マニュアル「HiRDB システム定義」の「統計ログファイル(pd_stj_file_size)の見積もり式」で見積もった値を指定してください。
システム共通定義のpd_stj_buff_sizeオペランドには,マニュアル「HiRDB システム定義」の「pd_stj_buff_sizeオペランド」で示す見積もり式で見積もった値を指定してください。
データベースの入出力に関する統計情報出力中に計測動作を変更する場合は,「pdstbegin -k dio」コマンドを-Dオプション指定で実行します。このとき,-Dオプションの各項目のうち,指定しない項目は省略時の動作になります。
なお,-Dオプションを省略した場合は,それまでの動作を引き継ぎます。
-Dオプション指定によって計測動作を変更する例を次の図に示します。
- 〔説明〕
-
各区間の計測動作を次の表に示します。
表2‒24 各区間の計測動作 区間
各項目の動作
入出力時間の計測頻度
統計情報の出力量
A
指定なし
指定なし
B
everyio
指定なし
C
指定なし
everyfile
D
everyio
everyfile
E
everyio
everyfile
F
指定なし
指定なし
(e) {-x ホスト名|-u ユニット識別子}
統計情報を出力するホストのホスト名,又はユニットのユニット識別子を指定します。省略した場合,HiRDBシステム全体の統計情報を統計ログファイルに出力します。
- -x ホスト名 〜<識別子>((1〜32))
-
統計情報を出力するホストのホスト名を指定します。なお,1:1スタンバイレス型系切り替え機能を使用している場合に代替中のときは,正規BESのホスト名,又は代替BESのホスト名のどちらを指定しても,両方のホストの統計情報出力を開始します。
- -u ユニット識別子 〜<識別子>((4文字))
-
統計情報を出力するユニットのユニット識別子を指定します。なお,1:1スタンバイレス型系切り替え機能を使用している場合に代替中のときは,正規BESのユニット識別子,又は代替BESのユニット識別子のどちらを指定しても,両方のユニットの統計情報出力を開始します。
(f) {-a|-s 〔サーバ名〔,サーバ名〕…〕} 〜《-a》
どのサーバから統計情報を出力するかを指定します。省略した場合,サーバの種別によって出力する統計情報が異なります。出力する統計情報については,表「出力される統計情報と-sオプションとの関係(HiRDB/シングルサーバの場合)」又は表「出力される統計情報と-sオプションとの関係(HiRDB/パラレルサーバの場合)」を参照してください。
- -a
-
システム全体及び全サーバの統計情報を出力します。-sオプションと同時に指定できません。
- -s 〔サーバ名〔,サーバ名〕…〕 〜<識別子>((1〜8))
-
統計情報を出力するサーバの名称を指定します。-aオプションと同時に指定できません。なお,1:1スタンバイレス型系切り替え機能を使用している場合に代替中のときは,正規BES,又は代替BESのどちらを指定しても,両方のサーバの統計情報出力を開始します。
(g) -w
統計情報にスレッド間ロック待ち時間の情報を取得する場合に指定します。スレッド間ロック待ち時間は,スレッド間ロック要求が待ち状態になってから,スレッド間ロックを取得するまでの時間です。
スレッド間ロック待ち時間の情報は,次の統計情報で取得できます。
-
システムの稼働に関する統計情報(sys)
-
UAPに関する統計情報(uap)
-
グローバルバッファプールに関する統計情報(buf)
スレッド間ロック待ち時間の情報を取得する場合は,システムの稼働に関する統計情報の取得が前提条件となります。そのため,システムの稼働に関する統計情報を取得していない場合は,システムの稼働に関する統計情報を取得してください。
より正確な情報を取得するために,このコマンドを実行する直前又は直後に,pdstjsyncコマンドを実行してください。詳細は,「pdstjsync(統計ログファイルへの統計ログバッファの反映)」を参照してください。
なお,スレッド間ロック待ち時間の統計情報の取得状況は,pdls -d stjコマンドを実行して確認してください。詳細は,「pdls【-d stj】(ユニット及びサーバごとの統計情報出力種別の指定有無の表示)」を参照してください。
統計情報種別ごとに,スレッド間ロック待ち時間の統計情報を取得できる条件を次に示します。
- システムの稼働に関する統計情報(sys)
-
システムの稼働に関する統計情報とスレッド間ロック待ち時間の統計情報を取得できる区間を次の図に示します。
図2‒9 スレッド間ロック待ち時間の統計情報を取得できる区間(sys) スレッド間ロック待ち時間の統計情報を正確に取得できるのは,t3〜t4の区間です。
- UAPに関する統計情報(uap)
-
UAPに関する統計情報とスレッド間ロック待ち時間の統計情報を取得できる区間を次の図に示します。
図2‒10 スレッド間ロック待ち時間の統計情報を取得できる区間(uap) pdstbegin -wコマンド実行後から,pdstend -wコマンドが実行されるまでの間に開始されたUAPのスレッド間ロック待ち時間の統計情報を取得できます。
- グローバルバッファプールに関する統計情報(buf)
-
グローバルバッファプールに関する統計情報とスレッド間ロック待ち時間の統計情報を取得できる区間を次の図に示します。
図2‒11 スレッド間ロック待ち時間の統計情報を取得できる区間(buf) pdstbegin -wコマンドを実行後,スレッド間ロック待ち時間の統計情報を正確に取得できるのは,直後のシンクポイントのS2から,pdstend -wコマンド実行直後のシンクポイントのS4までの区間です。また,トランザクションDの途中でpdstend -wコマンドが実行されていますが,トランザクションが決着するまでスレッド間ロックの待ち時間の統計情報を取得します。
ユニット内にスレッド間ロック待ち時間の統計情報を取得していないサーバがあると,システムの稼働に関する統計情報のユニットごとの編集結果は実際よりも小さい値が出力されます。そのため,システムの稼働に関する統計情報を取得するサーバを限定した場合は,サーバごとの編集結果から統計情報を評価してください。
(5) 規則
-
pdstbeginコマンドは,HiRDBが稼働中のときだけ実行できます。
-
pdstbeginコマンドは,シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。
-
統計情報を出力している場合は,pdstendコマンドを実行しないと,HiRDBが停止するまで統計情報を出力し続けます。
-
出力される統計情報と-sオプションとの組み合わせによって,出力される統計情報が異なります。出力される統計情報と-sオプションとの関係(HiRDB/シングルサーバの場合)を表「出力される統計情報と-sオプションとの関係(HiRDB/シングルサーバの場合)」,(HiRDB/パラレルサーバの場合)を表「出力される統計情報と-sオプションとの関係(HiRDB/パラレルサーバの場合)」に示します。
表2‒25 出力される統計情報と-sオプションとの関係(HiRDB/シングルサーバの場合) 統計情報種別
-sオプションで指定したサーバ(シングルサーバ)
sys
○
uap
○
sql
○
sqh
○
buf
○
fil
○
dfw
○
idx
○
sop
○
dop
○
pcd
○
obj
×
dio
○
(凡例)
○:統計情報を出力します。
×:統計情報を出力しません。
表2‒26 出力される統計情報と-sオプションとの関係(HiRDB/パラレルサーバの場合) 統計情報種別
-sオプションで指定したサーバ
フロントエンドサーバ
ディクショナリサーバ
バックエンドサーバ
sys
○
○
○
uap
○
×
×
sql
○
×
×
sqh
○
×
×
buf
×
○
○
fil
×
○
○
dfw
×
○
○
idx
×
○
○
sop
○
×
×
dop
○
×
×
pcd
○
○
○
obj
×
○
○
dio
×
○
○
(凡例)
○:統計情報を出力します。
×:統計情報を出力しません。
-
次の場合,すべてのサーバのスレッド間ロックの待ち時間の統計情報の取得を開始します。
-
-aオプションを指定した場合
-
-sオプション及び-aオプションの指定を省略して,-wオプションを指定した場合
-
(6) 注意事項
-
pdstbeginコマンドの結果は,pdls -d stjコマンド,エラーメッセージの有無,及びコマンド実行時のリターンコードで確認できます。
コマンド実行時のリターンコードを次に示します。
0:正常終了
- 4:異常終了(一部ユニットの統計情報取得開始に失敗している)
-
一部のユニットで統計情報の出力を開始できていません。
その状態で業務を継続すると一部のユニットで統計情報が取得されません。
メッセージに従って対処した後,再度コマンドを実行してください。
- 8:異常終了(オプション指定不正,rsh失敗など)
-
統計情報の出力を開始できていません。
その状態で業務を継続すると統計情報が取得されません。
メッセージに従って対処した後,再度コマンドを実行してください。
-
pdstbeginコマンドは,コマンド名pdststartでも実行できます。
-
ユニット内のサーバがすべて停止している場合,ユニットの統計情報は取得されません。
-
HiRDB/パラレルサーバでシステムマネジャだけのユニット(同じユニットにフロントエンドサーバ,バックエンドサーバ,又はディクショナリサーバがない)の場合,このユニットの統計情報は取得されません。
-
影響分散スタンバイレス型系切り替え機能を適用したユニットで,ユニット内に実行系として稼働しているサーバが存在しない場合,このユニットの統計情報は取得されません。
-
サーバのsys(システムの稼働に関する統計情報)の取得を開始すると,ユニットのsysの取得も開始します。
-
HiRDBを終了し,再度開始した場合,統計情報の出力は引き継がれません。したがって,HiRDB開始後に統計情報を出力したい場合は,再度pdstbeginコマンドを実行してください。
-
サーバを一度終了すると,サーバの正常開始時には統計情報の出力は引き継がれません。一度終了したサーバの統計情報を出力したい場合は,サーバの正常開始後にpdstbeginコマンドを実行してください。
-
統計情報が出力中かどうかについては,pdls -d stjコマンドを実行してください。
-
UAPに関する統計情報は,pdstbeginコマンドの入力からpdstendコマンドの入力までに実行していたUAPについてだけ出力します。また,OLTP環境下で実行しているUAPでは,pdstbeginコマンドの実行からpdstendコマンドの実行までに実行したトランザクションについてだけ,UAPに関する統計情報を出力します。
-
SQLに関する統計情報は,pdstbeginコマンドの入力からpdstendコマンドの入力までに実行したSQLについてだけ出力されます。
-
UAPに関する統計情報とSQLに関する統計情報は,pdstbegin及びpdstendコマンドを入力するタイミングによっては情報が一致しない場合があります。出力される統計情報と,pdstbegin,pdstendコマンドの入力との関係を次の図に示します。
図2‒12 出力される統計情報と,pdstbegin,pdstendコマンドの入力との関係 -
- sys:
-
-mオプションに指定した時間間隔ごとに情報を出力します。
- uap:
-
HiRDBへの接続時及びHiRDBからの切離し時に情報を出力します。
- sql:
-
SQLの実行開始時及びSQLの実行終了時に情報を出力します。
- sqh:
-
PREPARE時及び埋込み型SQL文の実行時に情報を出力します。
- buf,fil,idx:
-
シンクポイント時に情報を出力します。
- dfw:
-
シンクポイント時,及びデファードライトトリガ時に情報を出力します。
- sop:
-
動的SQLの前処理時,及び静的SQLの前処理時に,SQLオブジェクトがSQLオブジェクト用バッファにヒットしなかった場合に情報を出力します。
- dop:
-
FETCH文及びCLOSE文以外のSQL文を実行したときに情報を出力します。
- pcd:
-
SQLオブジェクトの実行時に情報を出力します。
- obj:
-
ディクショナリサーバ,及びバックエンドサーバでSQLオブジェクトの実行要求時に情報を出力します。
- dio:
-
-Iオプションに指定した時間間隔(秒)ごとにデータベースへの入出力が発生した場合に情報を出力します。
-
次に示す統計情報は,シンクポイント時に取得され,シンクポイント間の情報が編集されます。このため,シンクポイントが2回以上発生しないと統計情報が取得されません。
-
グローバルバッファプールに関する統計情報
-
データベース操作に関するHiRDBファイルの統計情報
-
インデクスに関する統計情報
これらの統計情報を取得するためには,pdstbeginコマンド実行直後と,pdstendコマンド実行直前に,pdlogswapコマンドを実行してシンクポイントを発生させる必要があります。
-
-
SQL文の履歴に関する統計情報は,SQLに関する統計情報出力が指定されている場合に出力されます。
-
影響分散スタンバイレス型系切り替え機能を適用している場合,pdstbeginコマンド実行後で,かつpdstend実行前に再開始が発生すると,再開始後も再開始前と同じ統計情報が出力されます。また,pdstbeginコマンド実行後で,かつpdstend実行前に系切り替えが発生すると,障害が発生したユニットで実行系として稼働していたサーバについては,切り替え先の受け入れユニットでも切り替え前と同じ統計情報が出力されます。統計情報の出力を停止する場合は,pdstendコマンドを実行してください。
-
影響分散スタンバイレス型系切り替え機能を適用している場合,-x,又は-uオプションを指定するときは,系切り替えの前後でpdstbeginコマンドの実行対象が異なります。pdstbeginコマンドの実行対象は次のようになります。
サーバの種別
サーバの状態
実行対象
ホストBES
実行中
○
待機中
×
ゲストBES
実行中
○
受け入れ可能状態
×
-
影響分散スタンバイレス型系切り替え機能を適用している場合,-x,又は-uオプションと,-sオプションを同時に指定したときの注意事項を次に示します。
-
pdstbeginコマンド実行時点で,-x,又は-uオプションに指定したユニットの,-sオプションで指定したバックエンドサーバが稼働中の場合,統計情報の取得を開始します。
-
-sオプションで指定したバックエンドサーバが-x,又は-uオプションで指定したユニットで稼働していない場合,KFPS01882-Eメッセージを表示して,エラー終了します。
バックエンドサーバが稼働しているユニットをpdls -d svrコマンドで確認した後,pdstbeginコマンドを再実行してください。
-
-
pdstbegin -wコマンドで,スレッド間ロックの待ち時間の統計情報を取得すると,システム全体の性能に影響を与えるおそれがあります。そのため,通常は指定しないでください。