スケーラブルデータベースサーバ HiRDB Version 8 システム運用ガイド(UNIX(R)用)

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

8.14 サーバプロセスのメモリサイズの監視(サーバプロセスのメモリサイズ監視機能

ここでは,サーバプロセスのメモリサイズ監視機能を使用して,サーバプロセスのメモリサイズを監視する方法について説明します。

なお,Linux版ではこの機能を使用する必要はありません。

<この節の構成>
(1) サーバプロセスのメモリサイズ監視機能とは
(2) 利点
(3) 適用基準
(4) サーバプロセスのメモリサイズ監視機能の指定方法
(5) 注意事項

(1) サーバプロセスのメモリサイズ監視機能とは

1サーバプロセスが使用した作業用メモリサイズがある値を超えた場合に,次の表に示す契機でサーバプロセスを終了させます。これをサーバプロセスのメモリサイズ監視機能といいいます。

表8-14 サーバプロセスのメモリサイズ監視機能がサーバプロセスを終了させる契機

サーバの種類 プロセス名称 プロセスの終了契機
シングルサーバ pdsds UAPの切り離し時※1
ユティリティの終了時※3
フロントエンドサーバ pdfes
ディクショナリサーバ pddic トランザクション決着時※2
ユティリティの終了時※3
バックエンドサーバ pdbes

注※1
この機能が適用されるUAPの切り離し時とは,次に示す場合です。
  • UAPが終了した場合
  • UAPがDISCONNECT文を発行した場合
  • HiRDBのXA接続用クライアントライブラリを使用したOpenTP1のユーザサーバプロセスが終了した場合
  • HiRDBのXA接続用クライアントライブラリを使用したOpenTp1のユーザサーバで,trn_rm_open_close_scopeオペランドにtransactionを指定しているときに,ユーザサーバプロセス上で実行されるトランザクションが決着(コミット又はロールバック)した場合
  • HiRDB Datareplicatorによるデータの反映時,反映情報キューファイルの終端検知後,一定時間(反映システム定義discintvlパラメタ指定値)までに次の反映要求がなかった場合

注※2
この機能が適用されるトランザクションの決着時とは,次に示す場合です。
  • 注※1で説明したUAPの切り離しが発生した場合
  • UAPがCOMMIT文又はROLLBACK文を発行した場合
  • SQLエラーによってUAPが内部ロールバックした場合
  • HiRDBのXA接続用クライアントライブラリを使用したOpenTp1のユーザサーバで,ユーザサーバプロセス上で実行されるトランザクションが決着(コミット又はロールバック)した場合

注※3
この機能が適用されるユティリティとは,次のユティリティです。
  • データベース作成ユティリティ(pdload)
  • データベース再編成ユティリティ(pdrorg)
  • 空きページ解放ユティリティ(pdreclaim)
  • グローバルバッファ常駐化ユティリティ(pdpgbfon)

 

SQL処理などで使用するメモリサイズがこの機能の監視対象になります。HiRDB開始時に確保するメモリサイズは監視対象外になります。サーバプロセスのメモリサイズ監視機能の対象範囲を次の図に示します。

図8-16 サーバプロセスのメモリサイズ監視機能の対象範囲

[図データ]

(2) 利点

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

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

なお,この機能の適用によって,現在使用中のジョブの実行に影響を与えることはありません。

(3) 適用基準

HiRDBのサーバプロセスが使用するメモリサイズが大きくなり,メモリを圧迫する場合に適用します。ただし,ユティリティやコマンドには,無条件にサーバプロセスを終了するものがあります。

(4) サーバプロセスのメモリサイズ監視機能の指定方法

サーバプロセスのメモリサイズ監視機能を適用する場合,サーバ定義のpd_svr_castoff_sizeオペランドでサーバプロセスの使用メモリの上限値を指定します。

(5) 注意事項

  1. pd_work_buff_modeオペランドを省略するか又はpoolを指定すると,pd_work_buff_sizeオペランドの値がHiRDBの開始時に確保するメモリサイズに含まれます。このため,pd_work_buff_sizeオペランドの値はこの機能の監視対象外になります。したがって,pd_work_buff_sizeオペランドに大きな値を指定すると,この機能を適用しても効果がでないことがあります。
  2. 次の表に示す場合はサーバプロセスのメモリサイズ監視機能を適用しても,メモリサイズが大きいサーバプロセスを終了できないため,効果がありません。

    表8-15 サーバプロセスのメモリサイズ監視機能を適用しても効果がない場合

    条件 効果がない場合
    シングルサーバ又はフロントエンドサーバの場合
    • メモリサイズが大きいサーバプロセスに接続しているUAPが,DISCONNECT文を発行しない場合(HiRDB SQL ExecutorがHiRDBとの接続を切り離さない場合も含みます)
    • HiRDBのXA接続用クライアントライブラリを使用しないOpenTP1のユーザサーバプロセスが,DISCONNECT文を発行しないで多数残り,接続するサーバプロセスのメモリサイズが大きい場合
    • HiRDBのXA接続用クライアントライブラリを使用し,trn_rm_open_close_scopeオペランドにprocessを適用するOpenTP1のユーザサーバプロセスが多数残り,接続するサーバプロセスのメモリサイズが大きい場合(この場合,ユーザサーバプロセスを終了して接続するサーバプロセスとの接続を切り離したときに,サーバプロセスのメモリサイズ監視機能が適用されます)
    ディクショナリサーバ又はバックエンドサーバの場合
    • メモリサイズが大きいサーバプロセスに接続しているUAPが,COMMIT文やROLLBACK文を発行しない場合(HiRDB SQL ExecutorがCOMMIT文やROLLBACK文を発行しない場合も含みます)
    • HiRDBのXA接続用クライアントライブラリを使用しないOpenTP1のユーザサーバプロセスが, COMMIT文やROLLBACK文を発行しないで多数残り,接続するサーバプロセスのメモリサイズが大きい場合
    • HiRDBのXA接続用クライアントライブラリを使用するOpenTP1のユーザサーバプロセス上で実行されるトランザクションが決着(コミット又はロールバック)しないで多数残り,接続するサーバプロセスのメモリサイズが大きい場合(この場合,トランザクションが決着したときに,サーバプロセスのメモリサイズ監視機能が適用されます)