Hitachi

ノンストップデータベース HiRDB Version 10 システム導入・設計ガイド(UNIX(R)用)


8.1.1 システム設計

〈この項の構成〉

(1) サーバ構成

フロントエンドサーバ,ディクショナリサーバ及びバックエンドサーバをそれぞれ一つのサーバマシンに配置するのが,HiRDB/パラレルサーバの基本的なサーバ構成です。ただし,各サーバマシンのCPUの処理負荷が高くない場合,一つのサーバマシンに複数のサーバを配置してもかまいません。一つのサーバマシンに複数のサーバを配置すると,必要とする共用メモリが増加します。共用メモリが不足すると,ユニットが開始できなくなるため,メモリ所要量を十分見積もってください。

設置できるサーバ数の範囲を次の表に示します。

表8‒1 設置できるサーバ数の範囲

項目

設置できるサーバ数の範囲

システムマネジャ数

1

フロントエンドサーバ数

1〜1,024

ディクショナリサーバ数

1

バックエンドサーバ数

1〜16,382

1ユニットに作成できるサーバ数

1〜34

(2) システムマネジャの設置

次に示す理由のため,システムマネジャを定義するサーバマシンはHiRDB管理者が運用しやすい場所に設置することをお勧めします。

(3) フロータブルサーバの設置

HiRDBは結合処理のような複雑な検索処理をする場合,データベースを持たないバックエンドサーバを優先的に使用して,処理性能を向上します。サーバマシンに余裕があり,複雑な検索処理をする場合にフロータブルサーバの設置を検討してください。フロータブルサーバを設置する場合,作業表用ファイル用のHiRDBファイルシステム領域を作成してください。作業表用ファイル用のHiRDBファイルシステム領域の名称は,バックエンドサーバ定義のpdworkオペランドで指定します。

(4) フロントエンドサーバの複数化

SQL処理のCPU負荷が高く,一つのフロントエンドサーバで処理しきれない場合,フロントエンドサーバを複数設定します。これをマルチフロントエンドサーバといいます。マルチフロントエンドサーバについては,「マルチフロントエンドサーバの設定」を参照してください。

(5) HiRDB/パラレルサーバが使用するメモリ

HiRDB/パラレルサーバが使用するメモリについて説明します。

HiRDB/パラレルサーバは次に示すメモリを使用します。

(a) メモリ所要量

HiRDB/パラレルサーバが必要とするメモリ所要量をサーバマシンごとに見積もってください。HiRDB/パラレルサーバのメモリ所要量については,「HiRDB/パラレルサーバのメモリ所要量の見積もり」を参照してください。

(b) 共用メモリのページ固定

HiRDBでは,次に示す共用メモリを実メモリ上に固定できます。

  • ユニットコントローラ用共用メモリ

  • グローバルバッファ用共用メモリ

  • 動的変更したグローバルバッファが使用する共用メモリ

  • インメモリデータバッファ用共用メモリ

共用メモリを実メモリ上に固定すると,ページの入出力が少なくなるため,性能が安定します。

前提条件

共用メモリのページ固定をするための,OSごとの前提条件を次に示します。

OS

前提条件

HP-UX

なし。

AIX

64ビットモードであること。

Linux

なし。

動作環境の設定

AIXの場合,オペレーティングシステムパラメタの設定が必要となります。オペレーティングシステムパラメタの設定については,「AIX固有のパラメタ指定」を参照してください。

ページ固定の方法

共用メモリのページ固定の方法について,共用メモリの種別ごとに説明します。

  • ユニットコントローラ用共用メモリ

    システム共通定義,又はユニット制御情報定義のpd_shmpool_attributeオペランドにfixedを指定します。

  • グローバルバッファ用共用メモリ

    システム共通定義,又はユニット制御情報定義のpd_dbbuff_attributeオペランドにfixedを指定します。

  • 動的変更したグローバルバッファが使用する共用メモリ

    システム共通定義,又はユニット制御情報定義のpd_dbbuff_attributeオペランドにfixedを指定します。これによって,pdbufmodコマンドを実行して動的変更したグローバルバッファが使用する共用メモリも実メモリ上に固定されます。

  • インメモリデータバッファ用共用メモリ

    pdmemdbコマンドの-pオプションにfixedを指定します。

    注意事項

    実メモリ上に連続した領域が確保できなかった場合,共用メモリのページ固定ができません。ページ固定に失敗した場合のHiRDBの動作を次に示します。

    OS

    ページ固定に失敗した場合のHiRDBの動作

    ユニットコントローラ用

    グローバルバッファ用

    動的変更したグローバルバッファ用

    インメモリデータバッファ用

    HP-UX

    ×

    ×

    ×

    AIX

    Linux

    ×

    ×

    ×

    (凡例)

    ○:ページ固定をしないで共用メモリを確保し,処理を続行します。

    ×:HiRDB,又はコマンドが異常終了します。

    注※

    AIXの場合,ページ固定に失敗したときでもシステムコールは正常終了します。そのため,HiRDBからはページ固定に失敗したことが分かりません。ページ固定ができているかどうかは,次の手順で確認してください。

    1. HiRDB稼働中にpdls -d memコマンドを実行し,次の共用メモリセグメントの識別子を確認します。

    ・ユニットコントローラ用共用メモリの場合は,SHM-OWNERにMANAGERと表示されている共用メモリセグメント

    ・上記以外の共用メモリの場合は,SHM-OWNERにユニット名を()で囲んだ文字列,又はHiRDBサーバ名が表示されている共用メモリセグメント

    2. OSのipcs -sコマンドを実行して,1.で確認した共用メモリセグメントの識別子を持つ共用メモリのSID値を確認します。

    3. 2.で確認したSID値に対してOSのsvmonコマンドを実行して,該当する共用メモリの実メモリページ数と固定されているページ数が一致するかどうかを確認します。

(c) Hugepage機能を用いた共用メモリの固定(Linux限定)

Linux版のHiRDBでは,LinuxのHugepage機能を用いて,次に示す共用メモリを実メモリ上に固定できます。

  • ユニットコントローラ用共用メモリ

  • グローバルバッファ用共用メモリ

  • 動的変更したグローバルバッファが使用する共用メモリ

  • インメモリデータバッファ用共用メモリ

LinuxのHugepage機能を用いて共用メモリを固定すると,共用メモリのページサイズが通常のページサイズ(4KB)からhugepagesのページサイズ(2MB)に拡大されます。ページサイズが拡大すると,仮想アドレスを実アドレスに変換するための管理領域(PTE:Page Table Entry)を通常よりも小さくできるため,メモリ不足を防止できます。また,仮想アドレスと物理アドレスの変換回数が少なくなり,ページフォルトの発生を抑えることができます。これによって,トランザクション性能が向上することがあります。

前提条件

LinuxのHugepage機能を有効にする必要があります。Hugepage機能については,OSのマニュアルを参照してください。

動作環境の設定

OSのオペレーティングシステムパラメタで,Hugepage機能を有効にする設定をしてください。OSのオペレーティングシステムパラメタの設定をしないと,共用メモリの確保と固定化に失敗し,HiRDBは起動しません。OSのオペレーティングシステムパラメタに指定する値の詳細については,「LinuxのHugepage機能の指定」を参照してください。

ページ固定の方法

共用メモリのページ固定の方法について,共用メモリの種別ごとに説明します。

  • ユニットコントローラ用共用メモリ

    システム共通定義,又はユニット制御情報定義のpd_shmpool_attributeオペランドにhugepageを指定します。

  • グローバルバッファ用共用メモリ

    システム共通定義,又はユニット制御情報定義のpd_dbbuff_attributeオペランドにhugepageを指定します。

  • 動的変更したグローバルバッファが使用する共用メモリ

    システム共通定義,又はユニット制御情報定義のpd_dbbuff_attributeオペランドにhugepageを指定します。これによって,pdbufmodコマンドを実行して動的変更したグローバルバッファが使用する共用メモリも実メモリ上に固定されます。

  • インメモリデータバッファ用共用メモリ

    pdmemdbコマンドの-pオプションにhugepageを指定します。

    注意事項

    サーバマシン上に十分なhugepagesが確保されていないと,共用メモリの確保に失敗します。各共用メモリの確保に失敗した場合,次に示すメッセージを出力してHiRDBの開始処理を中止するか,又はコマンドが異常終了します。

    • ユニットコントローラ用共用メモリの確保に失敗した場合

      KFPO00113-Eメッセージ

    • グローバルバッファ用共用メモリの確保に失敗した場合

      KFPH23015-E及びKFPH23005-Eメッセージ

    • 動的変更したグローバルバッファ用共用メモリの確保に失敗した場合

      KFPH27031-Eメッセージ

    • インメモリデータバッファ用共用メモリの確保に失敗した場合

      KFPH23208-Eメッセージ

    上記の理由でHiRDBの開始処理が中止した場合は,マニュアル「HiRDB メッセージ」を参照して,エラーとなった原因を調査し,対策してください。