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が使用するリアルスレッド数の上限を指定します。

次の条件をすべて満たす値を推奨します。

なお,見積もりの時点でこのカーネルパラメタに指定されている値(OSのデフォルト値)が,上記の条件をすべて満たす場合には,指定値の変更は不要です。

設定ファイル

/etc/sysctl.conf

パラメタ名

kernel.threads-max

5

core_pattern

コアファイルのパターン名を指定します。

このカーネルパラメタは通常指定する必要はありません。コアファイルの出力がsystemd-coredumpによって制御されている場合に,コアファイルの出力制御を従来の伝統的なLinuxの動作に戻したいとき,このカーネルパラメタにcoreを指定します。

設定ファイル

/etc/sysctl.conf

パラメタ名

kernel.core_pattern

6

aio-max-nr

図6‒4 カーネルパラメタaio-max-nrの求め方」に示す計算式から求められる値以上の値を指定します。「図6‒4 カーネルパラメタaio-max-nrの求め方」はこの表の後ろに記載しています。

設定ファイル

/etc/sysctl.conf

パラメタ名

fs.aio-max-nr

7

rmem_default

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

設定ファイル

/etc/sysctl.conf

パラメタ名

net.core.rmem_default

8

rmem_max

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

設定ファイル

/etc/sysctl.conf

パラメタ名

net.core.rmem_max

9

wmem_default

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

設定ファイル

/etc/sysctl.conf

パラメタ名

net.core.wmem_default

10

wmem_max

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

設定ファイル

/etc/sysctl.conf

パラメタ名

net.core.wmem_max

11

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

12

hugetlb_shm_group

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

設定ファイル

/etc/sysctl.conf

パラメタ名

vm.hugetlb_shm_group

13

nofile

図6‒5 カーネルパラメタnofileの求め方」に示す計算式から求められる値以上の値を指定します。「図6‒5 カーネルパラメタnofileの求め方」はこの表の後ろに記載しています。

設定ファイル

/etc/security/limits.conf

パラメタ名
  • soft nofile

  • hard nofile

14

file-max

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

設定ファイル

/etc/sysctl.conf

パラメタ名

fs.file-max

15

memlock

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

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

設定ファイル

/etc/security/limits.conf

パラメタ名
  • soft memlock

  • hard memlock

16

nproc

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

次の条件をすべて満たす値を推奨します。

なお,見積もりの時点でこのカーネルパラメタに指定されている値(OSのデフォルト値)が,上記の条件をすべて満たす場合には,指定値の変更は不要です。

設定ファイル

/etc/security/limits.conf

次に示すファイルにも同じ値を指定してください。

RHEL 6の場合

/etc/security/limits.d/90-nproc.conf

RHEL 7の場合

/etc/security/limits.d/20-nproc.conf

RHEL 8の場合

/etc/security/limits.conf以外に指定値を変更するファイルはありません。

パラメタ名
  • soft nproc

  • hard nproc

17

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

カーネル側のI/Oキューの深さを設定します。

  • RHEL 6またはRHEL 7の場合

    8192を指定することを推奨します。

  • RHEL 8の場合

    2048を指定することを推奨します。

上記の値を設定できない場合は,設定可能な最大値を指定してください。

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

設定ファイル

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

18

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

デバイスごとのI/Oスケジューラを設定します。

  • RHEL 6またはRHEL 7の場合

    deadlineを指定することを推奨します。

  • RHEL 8の場合

    デバイスがハードディスクの場合は,mq-deadlineを指定することを推奨します。

    デバイスがフラッシュドライブの場合は,kyberを指定することを推奨します。

設定ファイル

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

19

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

フラッシュドライブの場合は2を指定してください。

設定ファイル

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

20

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

フラッシュドライブの場合は0を指定してください。

設定ファイル

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

21

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

フラッシュドライブの場合は0を指定してください。

設定ファイル

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

注※

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

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

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

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

表6‒2 カーネルパラメタの指定値の目安および設定先」のカーネルパラメタthreads-maxの指定値は,次の計算式から求めてください。

図6‒3 カーネルパラメタthreads-maxの求め方

[図データ]

表6‒2 カーネルパラメタの指定値の目安および設定先」のカーネルパラメタaio-max-nrの指定値は,次の計算式から求めてください。

図6‒4 カーネルパラメタaio-max-nrの求め方

[図データ]

表6‒2 カーネルパラメタの指定値の目安および設定先」のカーネルパラメタnofileの指定値は,次の計算式から求めてください。

図6‒5 カーネルパラメタnofileの求め方

[図データ]

表6‒2 カーネルパラメタの指定値の目安および設定先」のカーネルパラメタnprocの指定値は,次の計算式から求めてください。

図6‒6 カーネルパラメタnprocの求め方

[図データ]