Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


6.2 カーネルパラメタの見積もり

ここでは,カーネルパラメタ(Linuxのオペレーティングシステムパラメタ)の見積もりについて説明します。

HADBサーバを動作させるためには,カーネルパラメタを適切に設定する必要があります。カーネルパラメタの値が小さいと,HADBが正常に動作しないおそれがあります。カーネルパラメタの指定値の目安,カーネルパラメタを設定するファイル,および対象のパラメタ名を次の表に示します。

表6‒2 カーネルパラメタの指定値の目安および設定先

項番

カーネルパラメタ

指定値の目安

設定ファイルとパラメタ名

1

shmmax

共有メモリセグメントの大きさの上限をバイト単位で指定します。「6.3.1 共有メモリの所要量の求め方」で求めた最大値以上の値を指定してください。

設定ファイル

/etc/sysctl.conf

パラメタ名

kernel.shmmax

2

shmmni

システム全体の共有メモリセグメント数の上限を指定します。2,000以上を指定してください。

設定ファイル

/etc/sysctl.conf

パラメタ名

kernel.shmmni

3

shmall

システム全体の共有メモリページ数の上限を指定します。次に示す計算式から求められる値が,SHMMAXに指定した値以上になるように,SHMALLの値を指定してください。

計算式

共有メモリのページサイズ×SHMALL

設定ファイル

/etc/sysctl.conf

パラメタ名

kernel.shmall

4

threads-max

HADBが使用するリアルスレッド数の上限を指定します。

次に示す計算式から求められる値以上の値を指定してください。

[図データ]

設定ファイル

/etc/sysctl.conf

パラメタ名

kernel.threads-max

5

aio-max-nr

次に示す計算式から求められる値以上の値を指定します。

[図データ]

設定ファイル

/etc/sysctl.conf

パラメタ名

fs.aio-max-nr

6

rmem_default

受信用ウィンドウサイズのデフォルト値を指定します。33,554,432以上を指定してください。

設定ファイル

/etc/sysctl.conf

パラメタ名

net.core.rmem_default

7

rmem_max

受信用ウィンドウサイズの上限を指定します。33,554,432以上を指定してください。

設定ファイル

/etc/sysctl.conf

パラメタ名

net.core.rmem_max

8

wmem_default

送信用ウィンドウサイズのデフォルト値を指定します。33,554,432以上を指定してください。

設定ファイル

/etc/sysctl.conf

パラメタ名

net.core.wmem_default

9

wmem_max

送信用ウィンドウサイズの上限を指定します。33,554,432以上を指定してください。

設定ファイル

/etc/sysctl.conf

パラメタ名

net.core.wmem_max

10

nr_hugepages

共有メモリにHugePagesを適用する場合,HugePagesの確保ページ数を指定します。次に示す計算式から求められる値以上の値を指定してください。

[図データ]

HADBサーバが使用する共有メモリの所要量については「6.3.1 共有メモリの所要量の求め方」を参照してください。

HugePagesの1ページ当たりのページサイズは次に示すコマンドで確認できます。数値の単位に注意してください。

実行するコマンド

grep Hugepagesize /proc/meminfo

実行結果の例

Hugepagesize: 2048 kB

なお,HugePagesは,サーバマシンのOS起動時に,このカーネルパラメタに指定したページ数分のメモリを確保します。HADBサーバをインストールしたサーバマシンに搭載されたメモリサイズ以上となるページ数をこのカーネルパラメタに指定すると,OSが起動できません。

そのため,このカーネルパラメタには,必ずHADBサーバをインストールしたサーバマシンに搭載されたメモリサイズ以下となるページ数を指定してください。

設定ファイル

/etc/sysctl.conf

パラメタ名

vm.nr_hugepages

11

hugetlb_shm_group

スーパユーザではないユーザで共有メモリにHugePagesを適用してHADBサーバを開始する場合,そのユーザのグループIDをLinuxカーネルケーパビリティのhugetlb_shm_groupに追加する必要があります。ユーザのグループIDはOSのidコマンドで取得してください。

設定ファイル

/etc/sysctl.conf

パラメタ名

vm.hugetlb_shm_group

12

nofile

次に示す計算式から求められる値以上の値を指定します。

[図データ]

設定ファイル

/etc/security/limits.conf

パラメタ名
  • soft nofile

  • hard nofile

13

file-max

このカーネルパラメタには,nofileに指定した値以上の値を指定してください。

設定ファイル

/etc/sysctl.conf

パラメタ名

fs.file-max

14

memlock

共有メモリのメモリロックの上限値を設定します。

HADBサーバをインストールしたサーバマシンに搭載されたメモリサイズを指定してください。

設定ファイル

/etc/security/limits.conf

パラメタ名
  • soft memlock

  • hard memlock

15

nproc

HADBが使用するリアルスレッド数の上限を指定します。

次に示す計算式から求められる値以上の値を指定してください。

[図データ]

設定ファイル

/etc/security/limits.conf

パラメタ名
  • soft nproc

  • hard nproc

16

/sys/block/デバイス名/queue/nr_requests

カーネル側のI/Oキューの深さを設定します。8192を指定してください。

また,コマンド側のキューの深さqueue_depthも変更してください。queue_depthパラメタの設定方法については,OSやHBAなどのドキュメントを参照してください。

設定ファイル

/sys/block/デバイス名/queue/nr_requests

17

/sys/block/デバイス名/queue/scheduler

デバイスごとのI/Oスケジューラを設定します。deadlineを指定してください。

設定ファイル

/sys/block/デバイス名/queue/scheduler

注※

HADBサーバをJP1/AJS3から自動起動するように設定する場合,カーネルパラメタを/etc/security/limits.confに設定しても有効となりません。そのため,次のどちらかの方法でカーネルパラメタを設定してください。

  • ジョブ実行環境の環境設定パラメーターに,カーネルパラメタを設定する。

  • JP1/AJS3の自動起動スクリプトに,カーネルパラメタを設定する。

詳細については,マニュアル「JP1/AJS3 設計ガイド(業務設計編)」の「UNIXジョブ使用時の注意事項」にある「JP1/AJS3サービスを自動起動している場合の注意」を参照してください。