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

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

21.4 Linuxのオペレーティングシステムパラメタの見積もり

ここでは,Linuxのオペレーティングシステムパラメタ(カーネルパラメタ)の見積もりについて説明します。オペレーティングシステムパラメタの値が小さいと,HiRDBが正しく動作しないことがあります。Linuxのオペレーティングシステムパラメタの指定値の目安を次の表に示します。

表21-4 Linuxのオペレーティングシステムパラメタの指定値の目安

オペレーティングシステムパラメタ 指定値の目安 オプション設定ファイル例
hard nofile MAX(MAX(1024,960+ユニット数)+320,pd_max_open_fdsの値,n)以上を指定してください。 /etc/security/limits.conf
fs.file-max MAX{1600,320×(h−g−i)+[a+(b×c)+320]×g+848×i+h×2+227+k×m+C}以上の値を指定してください。
この計算式で求めた値が,システムの上限を超える場合は,システムの上限値を指定してください。
/proc/sys/fs/file-max
nproc MAX(pd_max_server_processの値+e,512)以上を指定してください。
ただし,サーバマシン上で稼働するほかのプログラムが必要とする値の方が大きい場合は,その値を指定してください。
/etc/security/limits.conf
threads-max MAX((pd_max_server_processの値+20),576)以上を指定してください。 /proc/sys/kernel/threads-max
msgmni サーバマシン上で稼働する全プログラムが必要とするメッセージキュー識別子数を指定します。HiRDBが必要とするメッセージキュー識別子数については,「21.5 メッセージキュー及びセマフォ所要量の見積もり」を参照してください。そこで求めた値を加算してください。 /proc/sys/kernel/msgmni
SEMMNI サーバマシン上で稼働する全プログラムが必要とするセマフォ識別子数を指定します。HiRDBが必要とするセマフォ識別子数については,「21.5 メッセージキュー及びセマフォ所要量の見積もり」を参照してください。そこで求めた値を加算してください。
推奨値は1024以上です。
/proc/sys/kernel/semの第4パラメタ
SEMMNS サーバマシン上で稼働する全プログラムが必要とするセマフォ数を指定します。HiRDBが必要とするセマフォ数については,「21.5 メッセージキュー及びセマフォ所要量の見積もり」を参照してください。そこで求めた値を加算してください。
推奨値は7200以上です。
/proc/sys/kernel/semの第2パラメタ
SEMMSL Max(250,pd_dfw_awt_processオペランド指定値+2)以上の値を指定してください。 /proc/sys/kernel/semの第1パラメタ
shmmax 200000000以上で,MAX(p+q,r,s,t)よりも大きい値を指定してください。グローバルバッファの動的変更機能使用時は,追加するグローバルバッファのサイズを考慮し,設定値より追加分のサイズが大きくなる可能性があれば,予想される追加分のサイズを指定してください。
なお,HiRDBシステム定義のSHMMAXオペランドには,ここで求めたshmmaxの値以下を指定してください。
/proc/sys/kernel/shmmax
shmmni 2000以上を指定してください。
  • セキュリティ監査機能使用時は1を加算してください。
  • グローバルバッファの動的変更機能使用時は次の値を加算します。セキュリティ監査機能使用時は1を加算してください。
    HiRDB/シングルサーバの場合
    pd_max_add_dbbuff_shm_noオペランドの値
    HiRDB/パラレルサーバの場合
    n
    Σ各サーバ定義に指定したpd_max_add_dbbuff_shm_noオペランドの値
    i=1
    n:サーバマシン内のバックエンドサーバ数+ディクショナリサーバ数
  • インメモリデータ処理の使用時は次の値を加算します。
    HiRDB/シングルサーバの場合
    pd_max_resident_rdarea_shm_noオペランドの値
    HiRDB/パラレルサーバの場合
    pd_max_resident_rdarea_shm_noオペランドの値×バックエンドサーバ数
/proc/sys/kernel/shmmni
SHMALL 該当するサーバマシンでHiRDBが確保する共用メモリsiに,同一サーバマシンで稼働するほかのプログラムの共用メモリの所要量を加算して指定してください。 /proc/sys/kernel/shmall

注※
使用しているOSのバージョン,及びカーネルのバージョンごとに異なります。使用しているOSのマニュアルを参照し,表中の指定値の目安で示した値を設定してください。なお,使用しているOSのバージョンによっては,設定が不要になります。使用しているOSで該当するカーネルパラメタが設定できない場合には,設定は不要です。

a:データベース作成ユティリティで使用する入力データファイル数と分割入力データファイル数,又はデータベース再編成ユティリティで使用するアンロードデータファイル数

b:インデクスの横分割数の最大値(データベース作成ユティリティ,データベース再編成ユティリティ,又はリバランスユティリティの処理対象のインデクス)

c:インデクス数(データベース作成ユティリティ,データベース再編成ユティリティ,又はリバランスユティリティの処理対象のインデクス)

e:同時実行するコマンド(ユティリティを含む)の最大数

g:次のどちらかの値
  • HiRDB/シングルサーバの場合:pd_max_usersオペランドの値+pd_max_reflect_process_countオペランドの値
  • HiRDB/パラレルサーバの場合:ユニット内の全バックエンドサーバ,ディクショナリサーバの次に示す値の合計値
    pd_max_bes_processオペランドの値+pd_max_reflect_process_countオペランドの値
    pd_max_dic_processオペランドの値+pd_max_reflect_process_countオペランドの値

h:pd_max_server_processオペランドの値

i:ユニット内のサーバ数

k:pd_max_usersオペランドの値+pd_max_reflect_process_countオペランドの値

m:次のどちらかの値
  • HiRDB/パラレルサーバでユニット内にフロントエンドサーバがあり,かつpd_lck_release_detect=pipeの場合:2
  • そのほかの場合:0

n:データベース作成ユティリティ,データベース再編成ユティリティ,又はリバランスユティリティで,インデクス作成方法にインデクス一括作成モード若しくはインデクス情報出力モードを指定する場合,次の計算式の値
MIN(MAX(576,システム内のHiRDBサーバ数+448)+b×c,pd_max_open_fdsオペランドの最大値)
pd_max_open_fdsオペランドの最大値については,マニュアル「HiRDB Version 8 システム定義」を参照してください。

p:ユニットコントローラが使用する共用メモリの大きさ

q:シングルサーバ又は各サーバが使用する共用メモリの大きさ

r:HiRDBシステム定義のSHMMAXオペランドの指定値

s:グローバルバッファが使用する共用メモリの見積もり値
グローバルバッファが使用する共用メモリの見積もりについては,HiRDB/シングルサーバの場合は「16.1.5 グローバルバッファが使用する共用メモリの計算式」を,HiRDB/パラレルサーバの場合は「16.2.5 グローバルバッファが使用する共用メモリの計算式」を参照してください。

si:該当するサーバマシンでHiRDBが確保する共用メモリ

:セキュリティ監査情報用バッファ用共用メモリの見積もり値
セキュリティ監査情報用バッファ用共用メモリの見積もりについては,HiRDB/シングルサーバの場合は「16.1.2 メモリ所要量の計算式」を,HiRDB/パラレルサーバの場合は「16.2.2 メモリ所要量の計算式」を参照してください。

HiRDB/シングルサーバの場合:MAX(256,(システム内HiRDBサーバ数+32))×(g+k)+(h−k)×MAX(システム内HiRDBサーバ数,ユニット数)
HiRDB/パラレルサーバの場合:MAX(256,(システム内HiRDBサーバ数+32))×(g+k)+(h−g−k)×MAX(システム内HiRDBサーバ数,ユニット数)
<この節の構成>
(1) Linux固有の指定

(1) Linux固有の指定

Linux版の場合,拡張されたインターネットサービスデーモン(以降,xinetdと表記)が起動していると,その設定ファイルであるxinetd.confなどで設定している値の調整が必要となります。そのため,設定ファイルのパラメタに,次の値を設定してください。なお,計算した値がパラメタのデフォルト値よりも小さい場合は,パラメタ値を変更する必要はありません。

また,xinetd,及びxinetd.conf については,OSのマニュアルを参照してください。

(a) cps属性

「shell」サービスに該当する設定で,「cps」属性の1番目の引数(1秒当たりに処理する接続数)には,次の値を指定してください。

HiRDB/シングルサーバの場合:
ユティリティ専用ユニットがないとき:A
ユティリティ専用ユニットがあるとき:MAX(A,B)
:該当するマシンで起動するシングルサーバ数×4
:pdcopy及びpdrstrの最大同時実行数×2

HiRDB/パラレルサーバの場合:MAX(C,(D+E1+E2))
:該当するマシンで起動するディクショナリサーバ数
×HiRDBシステムに定義した全バックエンドサーバ数×6
+該当するマシンで起動するディクショナリサーバ数
×HiRDBシステムに定義した全バックエンドサーバ数×2
+該当するマシンで起動するバックエンドサーバ数×7
+該当するマシンで起動するディクショナリサーバ数×4
:pdcopy及びpdrstrの最大同時実行数
×(HiRDBシステムに定義したバックエンドサーバ数+4)
1:同時に実行する運用コマンド及びユティリティの数×3
2:pdtrndecコマンドを実行する運用の場合は次の合計値,pdtrndecコマンドを実行しない運用の場合は0
該当するマシンにFESが存在する場合はpd_max_usersの値
該当するマシンにBESが存在する場合はpd_max_bes_processの値
該当するマシンにDSが存在する場合はpd_max_dic_processの値
(b) instances属性

「shell」サービスに該当する設定で,「instances」属性(サービスの同時実行最大値)には,「(a)で設定した値×2」を指定してください。