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

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

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

1) pd_process_count = 常駐プロセス数〔,サーバ開始時の常駐プロセス数〕
〜<符号なし整数>((0〜2000))
常駐プロセス数:
フロントエンドサーバの常駐プロセス数を指定します。常駐プロセスとは,サーバ開始時からあらかじめ起動しておくプロセスのことです。
《利点》
フロントエンドサーバで並行処理できるトランザクションが使用するプロセスを,あらかじめシステム開始時に起動して常駐しておくことで,新たにトランザクションが入力されてもプロセス起動時間を削減できます。
ただし,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の値+1
    マルチフロントエンドサーバでない場合 pd_max_users+pd_max_reflect_process_countの値
《指定値のチューニング方法》
常駐プロセス数のチューニング方法については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。
《注意事項》
  • 常駐プロセス数はメモリと密接に関連しているため,必要以上に大きい値を指定すると,HiRDBを開始できなくなることがあります。
  • 常駐プロセス数を超えたプロセスが必要になると,最大起動プロセス数までプロセスを動的に起動します。ただし,pd_max_server_processオペランドの指定値によっては,最大起動プロセス数分のプロセスを起動できないことがあります。
《オペランドの省略値》
このオペランドを省略(又は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 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 システム運用ガイド」を参照してください。
サーバの種類 プロセス名称 プロセス終了契機
フロントエンドサーバ pdfes 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を指定すると,サーバプロセスのメモリサイズ監視機能を使用しません。