6.2 カーネルパラメタの見積もり
ここでは,カーネルパラメタ(Linuxのオペレーティングシステムパラメタ)の見積もりについて説明します。
HADBサーバを動作させるためには,カーネルパラメタを適切に設定する必要があります。カーネルパラメタの値が小さいと,HADBが正常に動作しないおそれがあります。カーネルパラメタの指定値の目安,カーネルパラメタを設定するファイル,および対象のパラメタ名を次の表に示します。
項番 |
カーネルパラメタ |
指定値の目安 |
設定ファイルとパラメタ名 |
---|---|---|---|
1 |
shmmax |
共有メモリセグメントの大きさの上限をバイト単位で指定します。「6.3.1 共有メモリの所要量の求め方」で求めた最大値以上の値を指定してください。 |
|
2 |
shmmni |
システム全体の共有メモリセグメント数の上限を指定します。2,000以上を指定してください。 |
|
3 |
shmall |
システム全体の共有メモリページ数の上限を指定します。次に示す計算式から求められる値が,SHMMAXに指定した値以上になるように,SHMALLの値を指定してください。
|
|
4 |
threads-max |
HADBが使用するリアルスレッド数の上限を指定します。 次の条件をすべて満たす値を推奨します。
なお,見積もりの時点でこのカーネルパラメタに指定されている値(OSのデフォルト値)が,上記の条件をすべて満たす場合には,指定値の変更は不要です。 |
|
5 |
core_pattern |
コアファイルのパターン名を指定します。 このカーネルパラメタは通常指定する必要はありません。コアファイルの出力がsystemd-coredumpによって制御されている場合に,コアファイルの出力制御を従来の伝統的なLinuxの動作に戻したいときは,このカーネルパラメタにcoreを指定します。 |
|
6 |
aio-max-nr |
「図6‒4 カーネルパラメタaio-max-nrの求め方」に示す計算式から求められる値以上の値を指定します。「図6‒4 カーネルパラメタaio-max-nrの求め方」はこの表の後ろに記載しています。 |
|
7 |
rmem_default |
受信用ウィンドウサイズのデフォルト値を指定します。33,554,432以上を指定してください。 |
|
8 |
rmem_max |
受信用ウィンドウサイズの上限を指定します。33,554,432以上を指定してください。 |
|
9 |
wmem_default |
送信用ウィンドウサイズのデフォルト値を指定します。33,554,432以上を指定してください。 |
|
10 |
wmem_max |
送信用ウィンドウサイズの上限を指定します。33,554,432以上を指定してください。 |
|
11 |
nr_hugepages |
共有メモリにHugePagesを適用する場合,HugePagesの確保ページ数を指定します。次に示す計算式から求められる値以上の値を指定してください。 HADBサーバが使用する共有メモリの所要量については「6.3.1 共有メモリの所要量の求め方」を参照してください。 HugePagesの1ページ当たりのページサイズは次に示すコマンドで確認できます。数値の単位に注意してください。
なお,HugePagesは,サーバマシンのOS起動時に,このカーネルパラメタに指定したページ数分のメモリを確保します。HADBサーバをインストールしたサーバマシンに搭載されたメモリサイズ以上となるページ数をこのカーネルパラメタに指定すると,OSが起動できません。 そのため,このカーネルパラメタには,必ずHADBサーバをインストールしたサーバマシンに搭載されたメモリサイズ以下となるページ数を指定してください。 |
|
12 |
hugetlb_shm_group |
スーパユーザではないユーザで共有メモリにHugePagesを適用してHADBサーバを開始する場合,そのユーザのグループIDをLinuxカーネルケーパビリティのhugetlb_shm_groupに追加する必要があります。ユーザのグループIDはOSのidコマンドで取得してください。 |
|
13 |
nofile |
「図6‒5 カーネルパラメタnofileの求め方」に示す計算式から求められる値以上の値を指定します。「図6‒5 カーネルパラメタnofileの求め方」はこの表の後ろに記載しています。 |
|
14 |
file-max |
このカーネルパラメタには,nofileに指定した値以上の値を指定してください。 |
|
15 |
memlock |
共有メモリのメモリロックの上限値を設定します。 HADBサーバをインストールしたサーバマシンに搭載されたメモリサイズを指定してください。 |
|
16 |
nproc |
HADBが使用するリアルスレッド数の上限を指定します。 次の条件をすべて満たす値を推奨します。
なお,見積もりの時点でこのカーネルパラメタに指定されている値(OSのデフォルト値)が,上記の条件をすべて満たす場合には,指定値の変更は不要です。 |
|
17 |
/sys/block/デバイス名/queue/nr_requests |
カーネル側のI/Oキューの深さを設定します。
上記の値を設定できない場合は,設定可能な最大値を指定してください。 また,コマンド側のキューの深さqueue_depthも変更してください。queue_depthパラメタの設定方法については,OSやHBAなどのドキュメントを参照してください。 |
|
18 |
/sys/block/デバイス名/queue/scheduler |
デバイスごとのI/Oスケジューラを設定します。
|
|
19 |
/sys/block/デバイス名/queue/rq_affinity |
フラッシュドライブの場合は2を指定してください。 |
|
20 |
/sys/block/デバイス名/queue/add_random |
フラッシュドライブの場合は0を指定してください。 |
|
21 |
/sys/block/デバイス名/queue/rotational |
フラッシュドライブの場合は0を指定してください。 |
|
- 注※
-
HADBサーバをJP1/AJS3から自動起動するように設定する場合,カーネルパラメタを/etc/security/limits.confに設定しても有効となりません。そのため,次のどちらかの方法でカーネルパラメタを設定してください。
-
ジョブ実行環境の環境設定パラメーターに,カーネルパラメタを設定する。
-
JP1/AJS3の自動起動スクリプトに,カーネルパラメタを設定する。
詳細については,マニュアルJP1/AJS3 設計ガイド(業務設計編)のUNIXジョブ使用時の注意事項にあるJP1/AJS3サービスを自動起動している場合の注意を参照してください。
-
「表6‒2 カーネルパラメタの指定値の目安および設定先」のカーネルパラメタthreads-maxの指定値は,次の計算式から求めてください。
「表6‒2 カーネルパラメタの指定値の目安および設定先」のカーネルパラメタaio-max-nrの指定値は,次の計算式から求めてください。
「表6‒2 カーネルパラメタの指定値の目安および設定先」のカーネルパラメタnofileの指定値は,次の計算式から求めてください。
「表6‒2 カーネルパラメタの指定値の目安および設定先」のカーネルパラメタnprocの指定値は,次の計算式から求めてください。