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

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

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

1) pd_process_count = 常駐プロセス数〔,サーバ開始時の常駐プロセス数〕
〜<符号なし整数>((0〜3000))
常駐プロセス数:
シングルサーバの常駐プロセス数を指定します。常駐プロセスとは,サーバ開始時からあらかじめ起動しておくプロセスのことです。
《利点》
シングルサーバで並行処理できるトランザクションが使用するプロセスを,あらかじめシステム開始時に起動して常駐しておくことで,新たにトランザクションが入力されてもプロセス起動時間を削減できます。ただし,HiRDBの開始に時間が掛かります。
《指定値の目安》
  • シングルサーバのサーバプロセスのプロセス固有領域とプロセサの実メモリ量から値を求めてください。サーバプロセスのプロセス固有領域については,マニュアル「HiRDB Version 8 システム導入・設計ガイド」を参照してください。
  • マルチフロントエンドサーバ構成で,更に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の値)の範囲内で値を指定します。
《指定値のチューニング方法》
常駐プロセス数のチューニング方法については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。
《注意事項》
  • 常駐プロセス数はメモリと密接に関連しているため,必要以上に大きい値を指定すると,HiRDBを開始できなくなることがあります。
  • 常駐プロセス数を超えたプロセスが必要になると,最大起動プロセス数までプロセスを動的に起動します。ただし,pd_max_server_processオペランドの指定値によっては,最大起動プロセス数分のプロセスを起動できないことがあります。
《オペランドの省略値》
このオペランドを省略(又は0を指定)すると,サーバ共通定義の同じオペランドの指定値が有効となります。サーバ共通定義の同じオペランドも省略すると,最大起動プロセス数が仮定されます。
 
サーバ開始時の常駐プロセス数:
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 Version 8 UAP開発ガイド」を参照してください。

 

2) pd_server_cleanup_interval = 非常駐サーバプロセス停止処理の実行間隔
〜<符号なし整数>((0〜1440))(単位:分)
HiRDBの非常駐サーバプロセスの停止処理をする間隔を分単位で指定します。この機能は,稼働中のサーバプロセス数が常駐プロセス数(pd_process_countオペランドの値)より多くなった場合に適用されます。この機能によって停止するサーバプロセス数はHiRDBが自動的に算出して決定します。
《利点》
業務(稼働中のサーバプロセス数)がピークのときに再利用できる非常駐サーバプロセスが増えるため,メモリなどのプロセス資源の利用効率が向上します。
《指定値の目安》
  • 例えば,一日のうち1時間だけ業務のピーク時間があり,その時間内でピークとなる間隔が2分ぐらいの場合,このオペランドに2を指定します。
  • ピーク時に同時実行されるサーバプロセス数が常駐プロセス数以下の場合,この機能を使用しても効果は期待できないため,このオペランドを省略します。
《オペランドの省略値》
このオペランドを省略すると,サーバ共通定義の同じオペランドの指定値が有効となります。サーバ共通定義の同じオペランドも省略すると,0が仮定されます。
《指定値のチューニング方法》
システムの稼働に関する統計情報をサーバ単位に1週間取得してください。「サービス実行中のサーバプロセス数(# OF PROCESS ON SERVICE)」の値から業務のピークを求めてください。そのピークが現在設定されている常駐プロセス数(pd_process_countオペランドの値)を超えている場合は,ピークごとの間隔を求めてその時間を設定します。
ただし,サーバマシンのメモリ,CPUなどの資源に余裕がある場合は,不足している分のプロセス数を常駐プロセス数に加算する方(pd_process_countオペランドの値を大きくする方)がこのオペランドを指定するより性能が向上します。
《注意事項》
このオペランドを省略するか,又は0を指定した場合は10秒間隔でサービス待ち状態の非常駐サーバプロセスを調査し,サービス待ち状態の非常駐サーバプロセスがあれば,その非常駐サーバプロセスを停止します。

 

3) pd_svr_castoff_size = 1サーバプロセスが使用するメモリサイズの上限値
〜<符号なし整数>((0〜2048))(単位:メガバイト)
Linux版の場合はこのオペランドを指定する必要はありません。
シングルサーバで処理する1サーバプロセスの使用メモリサイズの上限値を指定します。1サーバプロセスの使用メモリサイズがここで指定した値を超えた場合,そのサーバプロセスを次に示す契機で終了させます。サーバプロセスが終了した場合,KFPS00350-Wメッセージを出力します。これをサーバプロセスのメモリサイズ監視機能といいます。サーバプロセスのメモリサイズ監視機能については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。
サーバの種類 プロセス名称 プロセス終了契機
シングルサーバ pdsds UAPの切り離し時
ユティリティの終了時
《利点》
サーバプロセスのメモリサイズ監視機能を使用すると,次に示すような問題を解決できます。
  • 特定の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が仮定されます。
《オペランドの規則》
このオペランドに0を指定すると,サーバプロセスのメモリサイズ監視機能を使用しません。

 

4) pd_max_open_fds = 1プロセスがアクセスするファイル及びパイプの最大数
〜<符号なし整数>((1〜8192))《320》
HiRDBのプロセスがアクセスするファイル及びパイプの最大数を指定します。
《指定値の目安》
  • 1トランザクションで更新したプラグインインデクス格納RDエリアの最大数が100未満の場合は,このオペランドを省略してください。
  • 1トランザクションで更新したプラグインインデクス格納RDエリアの最大数が100以上の場合は,最大数+320をこのオペランドに指定してください。
《注意事項》
  • OSの種類によってこのオペランドの最大値が次のようになります。
    ・HP-UXの場合:8192
    ・Solarisの場合:2048
    ・64ビットモードのSolarisの場合:8192
    ・AIXの場合:8192
    ・Linuxの場合:8192
  • 次に示す操作を行う場合,このオペランドの値は無効になります。
    ・データベース作成ユティリティ,データベース再編成ユティリティ,リバランスユティリティでインデクス情報ファイルを作成する場合
    ・データベース作成ユティリティで分割入力データファイルを作成する場合
    これらの場合,ソフトリミットが次に示す計算式の値に変更されます。
     MIN(A,B)
    A:一つ前の注意事項で説明したOSの種類ごとのpd_max_open_fdsオペランドの最大値
    B:OSのオペレーティングシステムパラメタの単一プロセスがオープン又はロックできるファイル数の物理限界値(次に示すパラメタの値)
    ・HP-UXの場合:maxfiles_limの値
    ・Solarisの場合:rlim_fd_maxの値
    ・AIXの場合:nofiles_hardの値
    ・Linuxの場合:hard nofileの値

 

5) pd_max_ard_process = 非同期READプロセス数
〜<符号なし整数>((0〜256))
非同期READ機能を使用する場合にこのオペランドを指定します。このオペランドには非同期READ処理に必要なプロセス数を指定します。非同期READ機能については,マニュアル「HiRDB Version 8 システム導入・設計ガイド」を参照してください。
《前提条件》
pdbufferオペランドの-mオプションで1以上を指定している必要があります。
《利点》
非同期READ機能は入出力時間が掛かるキャラクタ型スペシャルファイルを使用している場合に特に効果があります(性能が向上します)。逆に,入出力時間が掛からない通常ファイル又は日立ディスクアレイサブシステムのディスクなどを使用している場合は,次に示す理由によって効果が得られないことがあります。
  • 入出力時間とCPU時間がオーバラップする割合が少ない
  • 通信処理にオーバヘッドが掛かる
《指定値の目安》
  • 0又は1を指定してください。ただし,pdbufferオペランドの-mオプションの値が2〜256の場合は,-mオプションと同じ値を指定してください。-mオプションの値が257以上の場合は,RDエリアやシステムファイルを格納するディスク装置の数と同じ値を指定するか,又は256を指定してください。
  • このオペランドの値を大きくすると,非同期READ機能が適用されるSQLの多重度が高い場合に処理時間を短縮できます。このオペランドの値を小さくすると,非同期READ機能が適用されるSQLの多重度が高い場合に,非同期READプロセスの処理完了待ちが発生する分,処理時間が余計に掛かることがあります。
  • このオペランドの値×サーバ数分のプロセスが起動されるため,リソース(共用メモリ及びメッセージキュー)を考慮してこのオペランドの値を決定してください。共用メモリ及びメッセージキューの見積もりについては,マニュアル「HiRDB Version 8 システム導入・設計ガイド」を参照してください。
《指定値のチューニング方法》
指定値(非同期READプロセス数)のチューニング方法については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。
《オペランドの省略値》
このオペランドを省略すると,サーバ共通定義の同じオペランドの指定値が有効となります。サーバ共通定義の同じオペランドも省略すると,0が仮定されます。
《オペランドの規則》
このオペランドに0を指定すると,非同期READ機能を使用しません。
《ほかのオペランドとの関連》
このオペランドの値を変更した場合はpd_max_server_processオペランドの値を見直してください。

 

6) pd_dfw_awt_process = デファードライト処理用並列WRITEプロセス数
〜<符号なし整数>((2〜255))
すべてのバッファプールに対して,デファードライト処理の並列WRITE機能を使用する場合にこのオペランドを指定します。このオペランドには並列処理するプロセス数を指定します。プロセス数を増加させることで書き込み処理時間を短縮できます。デファードライト処理の並列WRITE機能については,マニュアル「HiRDB Version 8 システム導入・設計ガイド」を参照してください。
《指定値の目安》
デファードライト処理の並列WRITE機能が有効になる最小値の2を指定してください。また,マニュアル「HiRDB Version 8 システム運用ガイド」の「デファードライト処理のチューニング」を参照してオペランドの値を決定してください。
《注意事項》
デファードライト処理の並列WRITE機能を指定すると,プロセス数が増加するため,CPU利用率が上がります。