Hitachi

ノンストップデータベース HiRDB Version 10 システム定義(UNIX(R)用)


9.2.3 プロセスに関するオペランド

◆ pd_max_bes_process = 1バックエンドサーバ当たりの最大起動プロセス数

〜<符号なし整数>((1〜2048))《pd_max_usersの値》

1バックエンドサーバ当たりの最大起動プロセス数を指定します。マルチフロントエンドサーバの場合,1バックエンドサーバにpd_max_usersの値を超える処理が集中することがあります。このオペランドには,1バックエンドサーバのプロセスをpd_max_usersの値を超えて起動する場合の最大起動プロセス数を指定します。

《前提条件》

このオペランドはマルチフロントエンドサーバのときに指定します。

《指定値の目安》
  • 1バックエンドサーバに集中する可能性がある処理の最大値を次に示します。

     pd_max_usersオペランドの値×フロントエンドサーバ数

    ここで求めた値を最大値として,バックエンドサーバへの処理の集中度を考慮してこのオペランドの値を指定してください。必要以上に大きな値を指定すると,メモリを圧迫する原因となります。

  • pd_max_usersの値よりも小さな値を指定した場合はpd_max_usersの値を仮定します。このとき,警告メッセージ(KFPS01888-W)を出力します。

  • 起動できるバックエンドサーバプロセス数以上の処理要求が発生した場合,フロントエンドサーバからバックエンドサーバへの接続処理に時間が掛かります。

  • 更新可能なオンライン再編成をする場合,次に示す計算式を満たすようにオペランドの値を決めてください。満たさない場合,HiRDBを開始できません。

     pd_max_bes_process+pd_max_reflect_process_countの値≦2048

《指定値のチューニング方法》

最大起動プロセス数のチューニング方法については,マニュアル「HiRDB システム運用ガイド」を参照してください。

◆ pd_max_dic_process = 1ディクショナリサーバ当たりの最大起動プロセス数

〜<符号なし整数>((1〜2048))《pd_max_usersの値》

1ディクショナリサーバ当たりの最大起動プロセス数を指定します。マルチフロントエンドサーバの場合,ディクショナリサーバにpd_max_usersの値を超える処理が集中することがあります。また,マルチフロントエンドサーバでない場合も,RDエリアやグローバルバッファに関連する運用コマンド(pdbufls,pddbls,pdopen,pdclose,pdhold,pdrels)をpd_max_usersの値以上同時に実行すると,ディクショナリサーバにpd_max_usersの値を超える処理が集中することがあります。

このオペランドには,1ディクショナリサーバのプロセスをpd_max_usersの値を超えて起動する場合の最大起動プロセス数を指定します。

《指定値の目安》
  • 1ディクショナリサーバに集中する可能性がある処理の最大値を次に示します。

     pd_max_usersオペランドの値×フロントエンドサーバ数

    ここで求めた値を最大値として,ディクショナリサーバへの処理の集中度を考慮してこのオペランドの値を指定してください。必要以上に大きな値を指定すると,メモリを圧迫する原因となります。

  • RDエリアやグローバルバッファに関する運用コマンドの実行で,ディクショナリサーバに処理が集中する場合は,同時に実行する運用コマンドの数が最大値になります。

  • pd_max_usersの値よりも小さな値を指定した場合はpd_max_usersの値を仮定します。このとき,警告メッセージ(KFPS01888-W)を出力します。

  • 起動できるディクショナリサーバプロセス数以上の処理要求が発生した場合,処理に時間が掛かります。

  • 更新可能なオンライン再編成をする場合,次に示す計算式を満たすようにオペランドの値を決めてください。満たさない場合,HiRDBを開始できません。

     pd_max_dic_process+pd_max_reflect_process_countの値≦2048

《指定値のチューニング方法》

最大起動プロセス数のチューニング方法については,マニュアル「HiRDB システム運用ガイド」を参照してください。

◆ pd_process_count = 常駐プロセス数〔,サーバ開始時の常駐プロセス数〕

〜<符号なし整数>

  • シングルサーバの場合:((0〜3000))最大常駐プロセス数

  • バックエンドサーバの場合:((0〜2048))最大常駐プロセス数

  • ディクショナリサーバの場合:((0〜2048))↑最大常駐プロセス数÷2↑

  • フロントエンドサーバの場合:((0〜2000))↑最大常駐プロセス数÷2↑

常駐プロセス数:

各サーバの常駐プロセス数を指定します。常駐プロセスとは,サーバ開始時からあらかじめ起動しておくプロセスのことです。

《利点》

各サーバで並行処理できるトランザクションが使用するプロセスを,あらかじめシステム開始時に起動して常駐しておくことで,新たにトランザクションが入力されてもプロセス起動時間を削減できます。ただし,HiRDBの開始に時間が掛かります。

《指定値の目安》
  • 各サーバプロセスのプロセス固有領域とプロセサの実メモリ量から値を求めてください。サーバプロセスのプロセス固有領域については,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

  • マルチフロントエンドサーバ構成で,更にpd_max_bes_process又はpd_max_dic_processオペランドを指定している場合は,次に示す条件を満たすようにこのオペランドを指定してください。

    pd_process_countの値≦pd_max_bes_process又はpd_max_dic_processの値

  • このオペランドには,次の表に示す各サーバの最大常駐プロセス数の範囲内で値を指定します。

    サーバの種類

    最大起動プロセス数

    最大常駐プロセス数

    シングルサーバ

    pd_max_users+pd_max_reflect_process_countの値

    フロントエンドサーバ

    マルチフロントエンドサーバの場合

    pd_max_users+pd_max_reflect_process_countの値+1

    pd_max_users+pd_max_reflect_process_countの値

    マルチフロントエンドサーバでない場合

    pd_max_users+pd_max_reflect_process_countの値

    ディクショナリサーバ

    pd_max_dic_process+pd_max_reflect_process_countの値

    バックエンドサーバ

    pd_max_bes_process+pd_max_reflect_process_countの値

    注※

    pd_max_dic_process又はpd_max_bes_processオペランドを省略している場合は,pd_max_usersの値が仮定されます。

《指定値のチューニング方法》

常駐プロセス数のチューニング方法については,マニュアル「HiRDB システム運用ガイド」を参照してください。

《注意事項》
  • 常駐プロセス数はメモリやCPUと密接に関連しているため,必要以上に大きい値を指定すると,HiRDBを開始できなくなったり,サーバマシンの処理性能が低下したりすることがあります。

  • 常駐プロセス数を超えたプロセスが必要になると,最大起動プロセス数までプロセスを動的に起動します。ただし,pd_max_server_processオペランドの指定値によっては,最大起動プロセス数分のプロセスを起動できないことがあります。

  • 最大常駐プロセス数を超える値を指定した場合,エラーにはしないで,最大常駐プロセス数に補正します。

《オペランドの省略値》

このオペランドを省略(又は0を指定)し,更に各サーバ定義でもオペランドを省略(又は0を指定)すると,次に示す値が仮定されます。

  • シングルサーバ又はバックエンドサーバの場合:最大起動プロセス数

  • フロントエンドサーバ又はディクショナリサーバの場合:↑最大起動プロセス数÷2↑

サーバ開始時の常駐プロセス数:

HiRDBの開始処理時に常駐化する常駐プロセスの数を指定します。

通常,常駐プロセスの起動処理はHiRDBの開始処理中に行われます。このため,常駐プロセス数が多くなると,それに比例してHiRDBの開始処理時間が長くなります。目安として,100MIPS程度のサーバマシンでプロセスを一つ起動するのに約1秒掛かります。

サーバ開始時の常駐プロセス数の指定有無による処理の違いを次に示します。

●サーバ開始時の常駐プロセス数を指定しない場合(pd_process_count = 500と指定した場合)

すべての常駐プロセスの起動処理をHiRDBの開始処理中に実行します。常駐プロセス(この場合は500個)がすべて起動されないと,HiRDBを開始できません。100MIPS程度のサーバマシンで,HiRDB開始処理時の常駐プロセスの起動に約500秒掛かります。

●サーバ開始時の常駐プロセス数を指定する場合(pd_process_count = 500,50と指定した場合)

一部の常駐プロセスの起動処理をHiRDBの開始処理中に実行し,残りの常駐プロセスの起動処理をHiRDBの開始処理終了後に実行します。一部の常駐プロセス(この場合は50個)が起動されれば,HiRDBを開始できます。100MIPS程度のサーバマシンで,HiRDB開始処理時の常駐プロセスの起動に約50秒掛かります。残りの常駐プロセス(この場合は450個)は,HiRDBの開始処理終了後に起動されます。

《利点》

HiRDBの開始処理時間を短縮できます。系切り替え機能を使用している場合など,HiRDBの開始処理時間をなるべく短くしたいときに適用します。

《指定値の目安》

HiRDBの開始処理終了直後に必要なプロセス数を指定します。

《注意事項》

サーバ開始時の常駐プロセス数を指定する場合は,クライアント環境定義のPDCWAITTIMEオペランドの値を見直してください。

HiRDBの開始直後に,サーバ開始時の常駐プロセス数の値を超えるUAPが実行されると,残りの常駐プロセスを起動した後にトランザクション処理が実行されます。したがって,クライアント環境定義のPDCWAITTIMEオペランドの値が小さいと,一部のUAPがタイムアウトで処理できない場合があります。

PDCWAITTIMEオペランドについては,マニュアル「HiRDB UAP開発ガイド」を参照してください。

◆ pd_server_cleanup_interval = 非常駐サーバプロセス停止処理の実行間隔

〜<符号なし整数>((0〜1440))《0》(単位:分)

HiRDBの非常駐サーバプロセスの停止処理をする間隔を分単位で指定します。この機能は,稼働中のサーバプロセス数が常駐プロセス数(pd_process_countオペランドの値)より多くなった場合に適用されます。この機能によって停止するサーバプロセス数はHiRDBが自動的に算出して決定します。

《利点》

業務(稼働中のサーバプロセス数)がピークのときに再利用できる非常駐サーバプロセスが増えるため,メモリなどのプロセス資源の利用効率が向上します。

《指定値の目安》
  • 例えば,一日のうち1時間だけ業務のピーク時間があり,その時間内でピークとなる間隔が2分ぐらいの場合,このオペランドに2を指定します。

  • ピーク時に同時実行されるサーバプロセス数が常駐プロセス数以下の場合,この機能を使用しても効果は期待できないため,このオペランドを省略します。

《指定値のチューニング方法》

システムの稼働に関する統計情報をサーバ単位に1週間取得してください。「サービス実行中のサーバプロセス数(# OF PROCESS ON SERVICE)」の値から業務のピークを求めてください。そのピークが現在設定されている常駐プロセス数(pd_process_countオペランドの値)を超えている場合は,ピークごとの間隔を求めてその時間を設定します。

ただし,サーバマシンのメモリ,CPUなどの資源に余裕がある場合は,不足している分のプロセス数を常駐プロセス数に加算する方(pd_process_countオペランドの値を大きくする方)がこのオペランドを指定するより性能が向上します。

《注意事項》

このオペランドを省略するか,又は0を指定した場合は10秒間隔でサービス待ち状態の非常駐サーバプロセスを調査し,サービス待ち状態の非常駐サーバプロセスがあれば,その非常駐サーバプロセスを停止します。

◆ pd_svr_castoff_size = 1サーバプロセスが使用するメモリサイズの上限値

〜<符号なし整数>((0〜2048))《0》(単位:メガバイト)

1サーバプロセスの使用メモリサイズの上限値を指定します。1サーバプロセスの使用メモリサイズがここで指定した値を超えた場合,そのサーバプロセスを次に示す契機で終了させます。サーバプロセスが終了した場合,KFPS00350-Wメッセージを出力します。これをサーバプロセスのメモリサイズ監視機能といいます。サーバプロセスのメモリサイズ監視機能については,マニュアル「HiRDB システム運用ガイド」を参照してください。

サーバの種類

プロセス名称

プロセス終了契機

シングルサーバ

pdsds

UAPの切り離し時

ユティリティの終了時

フロントエンドサーバ

pdfes

UAPの切り離し時

ディクショナリサーバ

pddic

トランザクション決着時

ユティリティの終了時

バックエンドサーバ

pdbes

トランザクション決着時

ユティリティの終了時

《利点》

サーバプロセスのメモリサイズ監視機能を使用すると,次に示すような問題を解決できます。

  • 特定のSQL処理でサーバの常駐プロセスのメモリサイズが大きくなり,システムの空きメモリを圧迫している

  • ユティリティ実行時,ローカルバッファサイズやソート用ワークバッファサイズに大きな値を指定して,サーバの常駐プロセスのメモリサイズが大きくなり,システムの空きメモリを圧迫している

HiRDBは不要となったメモリを解放しますが,OSはプログラムがメモリを解放しても,領域自体は該当するプロセス内のメモリ管理機構で保持しています。このため,一度でも大量の領域を使用して大きくなったプロセスサイズは小さくなることはなく,特に常駐プロセスの場合はシステムを圧迫し続けます。この機能を使用すると,常駐プロセスであってもプロセスを終了させるため,メモリを圧迫する問題を回避できます。

《適用基準》

HiRDBのサーバプロセスが使用するメモリサイズが大きくなり,メモリを圧迫する場合に適用します。

《指定値の目安》
  • このオペランドの上限値の考え方

    通常はHiRDBの最大処理能力を考慮して指定値を決めてください。最大同時接続数分のSQLが同時に実行されることを想定すると,各ユニットで次の式を満たすようにこのオペランドの指定値を決めてください。

    a×(b+c)<d

    a:ユニット内のサーバプロセス数(最大同時接続数×ユニット内のサーバ数)

    b:HiRDB開始直後の1サーバプロセス分の仮想メモリサイズ

    c:pd_svr_castoff_sizeオペランドの値

    d:ユニットで確保できるメモリサイズ(他プログラム使用分を除いたメモリサイズ)

  • このオペランドの下限値の考え方

    このオペランドの指定値が通常のSQL処理に必要なメモリサイズより小さいと,常駐プロセスの効果が低下して,プロセスの終了及び開始が頻繁に起こります。また,そのたびにsyslogfile又はメッセージログファイルにメッセージが出力されるため,性能が低下します。これを防ぐために,各サーバで次の式を満たすようにこのオペランドの指定値を決めてください。

    a−b<c

    a:SQL処理終了後,又はユティリティ終了後のサーバプロセス仮想メモリサイズ

    b:HiRDB開始直後のサーバプロセス仮想メモリサイズ

    c:pd_svr_castoff_sizeオペランドの値

仮想メモリサイズはOSのコマンドなど(HP-UXのtopコマンドなど)で調査してください。

《オペランドの規則》

このオペランドに0を指定すると,サーバプロセスのメモリサイズ監視機能を使用しません。

◆ pd_max_open_fds = 1プロセスがアクセスするファイル及びパイプの最大数

〜<符号なし整数>((1〜8192))《320》

HiRDBのプロセスがアクセスするファイル及びパイプの最大数を指定します。

《指定値の目安》

シングルサーバ定義に指定する場合

  • 1トランザクションで更新したプラグインインデクス格納RDエリアの最大数が100未満の場合は,このオペランドを省略してください。

  • 1トランザクションで更新したプラグインインデクス格納RDエリアの最大数が100以上の場合は,最大数+320をこのオペランドに指定してください。

バックエンドサーバ定義に指定する場合

  • a+b<100の場合は,このオペランドを省略してください。

  • a+b≧100の場合は,a+b+320をこのオペランドに指定してください。

a:1トランザクションで更新した1バックエンドサーバプロセス当たりのプラグインインデクス格納RDエリアの最大数

b:(全文検索プラグイン(HiRDB Text Search Plug-in)又はXMLデータ検索プラグイン(HiRDB XML Extension)の検索用関数実行時に使用する最大ファイル数)×(一つのSQL文で実行するHiRDB Text Search Plug-in又はHiRDB XML Extension提供関数の最大個数)

注※ 各検索用関数で,最大10ファイルを使用します。

HiRDB Text Search Plug-inの検索用関数については,マニュアル「HiRDB 全文検索プラグイン HiRDB Text Search Plug-in」を参照してください。

HiRDB XML Extensionの検索用関数については,マニュアル「HiRDB XML拡張機能 HiRDB XML Extension」を参照してください。

《注意事項》
  • 指定値が小さいとSQLエラーになることがあります。

  • OSの種類によってこのオペランドの最大値が次のようになります。

    ・HP-UXの場合:8192

    ・AIXの場合:8192

    ・Linuxの場合:8192

  • 次に示す操作を行う場合,このオペランドの値は無効になります。

    ・データベース作成ユティリティ,データベース再編成ユティリティ,リバランスユティリティでインデクス情報ファイルを作成する場合

    ・データベース作成ユティリティで分割入力データファイルを作成する場合

    これらの場合,ソフトリミットが次に示す計算式の値に変更されます。

     MIN(A,B)

    A:一つ前の注意事項で説明したOSの種類ごとのpd_max_open_fdsオペランドの最大値

    B:OSのオペレーティングシステムパラメタの単一プロセスがオープン又はロックできるファイル数の物理限界値(次に示すパラメタの値です)

    ・HP-UXの場合:maxfiles_limの値

    ・AIXの場合:nofiles_hardの値

    ・Linuxの場合:hard nofileの値

  • バックエンドサーバの1プロセスが使用するファイル又はパイプの数が多い場合,使用できるファイル又はパイプの数がこのオペランドの指定値よりも少なくなることがあります。マニュアル「HiRDB システム導入・設計ガイド」の「ユニット数又はサーバ数が多いシステムを構築する場合の考慮点」を参照して対策するか,次に示す値を小さくしてプロセスが使用するファイル及びパイプの数を減らしてください。

    ・1トランザクションで更新したプラグインインデクス格納RDエリアの最大数

    ・HiRDB Text Search Plug-inの1契機で使用する最大ファイル数

    ・一つのSQL文で実行するHiRDB Text Search Plug-in提供関数の最大個数

◆ pd_max_ard_process = 非同期READプロセス数

〜<符号なし整数>((0〜256))《0》

非同期READ機能を使用する場合にこのオペランドを指定します。このオペランドには非同期READ処理に必要なプロセス数を指定します。HiRDB/パラレルサーバの場合は,1サーバ(バックエンドサーバ又はディクショナリサーバ)当たりのプロセス数を指定します。非同期READ機能については,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

《前提条件》

pdbufferオペランドの-mオプションで1以上を指定している必要があります。

《利点》

非同期READ機能は入出力時間が掛かるキャラクタ型スペシャルファイルを使用している場合に特に効果があります(性能が向上します)。逆に,入出力時間が掛からない通常ファイル又は日立ディスクアレイシステムのディスクなどを使用している場合は,次に示す理由によって効果が得られないことがあります。

  • 入出力時間とCPU時間がオーバラップする割合が少ない

  • 通信処理にオーバヘッドが掛かる

《指定値の目安》
  • 0又は1を指定してください。ただし,pdbufferオペランドの-mオプションの値が2〜256の場合は,-mオプションと同じ値を指定してください。-mオプションの値が257以上の場合は,RDエリアやシステムファイルを格納するディスク装置の数(HiRDB/パラレルサーバの場合は1サーバ当たりの数)と同じ値を指定するか,又は256を指定してください。

  • このオペランドの値を大きくすると,非同期READ機能が適用されるSQLの多重度が高い場合に処理時間を短縮できます。このオペランドの値を小さくすると,非同期READ機能が適用されるSQLの多重度が高い場合に,非同期READプロセスの処理完了待ちが発生する分,処理時間が余計に掛かることがあります。

  • このオペランドの値×サーバ数分のプロセスが起動されるため,リソース(共用メモリ及びメッセージキュー)を考慮してこのオペランドの値を決定してください。共用メモリ及びメッセージキューの見積もりについては,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

《指定値のチューニング方法》

指定値(非同期READプロセス数)のチューニング方法については,マニュアル「HiRDB システム運用ガイド」を参照してください。

《オペランドの規則》

このオペランドに0を指定すると,非同期READ機能を使用しません。

1:1スタンバイレス型系切り替え機能を使用している場合,正規BESとそれに対応する代替BESに同じ値を指定してください。

《ほかのオペランドとの関連》

このオペランドの値を変更した場合はpd_max_server_processオペランドの値を見直してください。

《各見積もり式への影響》

pd_max_ard_processオペランドの指定値を変更すると,次の見積もり式に影響があります。

マニュアル「HiRDB システム導入・設計ガイド」:

  • 「HiRDB/シングルサーバで起動するプロセス」

  • 「HiRDB/シングルサーバのメモリ所要量の見積もり」の「グローバルバッファが使用する共用メモリの計算式」

  • 「HiRDB/シングルサーバのメモリ所要量の見積もり」の「メモリ所要量の計算式」

  • 「HiRDB/パラレルサーバで起動するプロセス」

  • 「HiRDB/パラレルサーバのメモリ所要量の見積もり」の「グローバルバッファが使用する共用メモリの計算式」

  • 「HiRDB/パラレルサーバのメモリ所要量の見積もり」の「メモリ所要量の計算式」

  • 「HP-UXのオペレーティングシステムパラメタの見積もり」

  • 「シングルサーバが使用する共用メモリの計算式」の「計算式2」

  • 「ディクショナリサーバが使用する共用メモリの計算式」の「計算式2」

  • 「バックエンドサーバが使用する共用メモリの計算式」の「計算式2」

  • 「リソース数に関連する環境変数の見積もり」の「HiRDB/シングルサーバの場合」

  • 「リソース数に関連する環境変数の見積もり」の「HiRDB/パラレルサーバの場合」

◆ pd_dfw_awt_process = デファードライト処理用並列WRITEプロセス数

〜<符号なし整数>((2〜255))

すべてのバッファプールに対して,デファードライト処理の並列WRITE機能を使用する場合にこのオペランドを指定します。このオペランドには並列処理するプロセス数を指定します。プロセス数を増加させることで書き込み処理時間を短縮できます。デファードライト処理の並列WRITE機能については,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

《指定値の目安》

デファードライト処理の並列WRITE機能が有効になる最小値の2を指定してください。また,マニュアル「HiRDB システム運用ガイド」の「デファードライト処理のチューニング」を参照してオペランドの値を決定してください。

《注意事項》

デファードライト処理の並列WRITE機能を指定すると,プロセス数が増加するため,CPU利用率が上がります。

《各見積もり式への影響》

pd_dfw_awt_processオペランドの指定値を変更すると,次の見積もり式に影響があります。

マニュアル「HiRDB システム導入・設計ガイド」:

  • 「HiRDB/シングルサーバで起動するプロセス」

  • 「HiRDB/シングルサーバのメモリ所要量の見積もり」の「メモリ所要量の計算式」

  • 「HiRDB/パラレルサーバで起動するプロセス」

  • 「HiRDB/パラレルサーバのメモリ所要量の見積もり」の「メモリ所要量の計算式」

  • 「シングルサーバが使用する共用メモリの計算式」の「計算式5」

  • 「ディクショナリサーバが使用する共用メモリの計算式」の「計算式4」

  • 「バックエンドサーバが使用する共用メモリの計算式」の「計算式5」

  • 「リソース数に関連する環境変数の見積もり」の「HiRDB/シングルサーバの場合」

  • 「リソース数に関連する環境変数の見積もり」の「HiRDB/パラレルサーバの場合」