9.1.3 メモリ・バッファに関連するパラメタ
メモリ・バッファに関連するパラメタの一覧を次の表に示します。
項番 |
定義ファイル |
パラメタ名 |
指定する値 |
デフォルト値 |
---|---|---|---|---|
1 |
サーバ定義ファイル |
バッファサイズ(1024バイト〜16777216バイト) |
4096バイト |
|
2 |
|
false |
||
3 |
1024バイト〜67108864バイト |
67108864バイト |
||
4 |
バッファサイズ(1024バイト〜16777216バイト) |
131071バイト |
||
5 |
キューの長さ (10000〜1000000) |
100000 |
||
6 |
1048576バイト〜2147483647バイト |
16777216バイト |
||
7 |
バッファサイズ(1024バイト〜16777216バイト) |
131071バイト |
||
8 |
10240バイト〜2147483647バイト |
1048576バイト |
||
9 |
1024バイト〜16777216バイト |
10240バイト |
||
10 |
1メガバイト〜268435456メガバイト |
450メガバイト |
||
11 |
0バイト〜2147483647バイト |
1048576バイト |
||
12 |
クラスタ定義ファイル |
1バイト〜1024バイト |
1024バイト |
|
13 |
1〜100 |
10 |
||
14 |
起動設定ファイル |
バッファサイズ(512キロバイト〜102400キロバイト) |
8192キロバイト |
|
15 |
ヒープサイズ※1 |
3072メガバイト |
||
16 |
ヒープサイズ(2メガバイト〜2147483647メガバイト) |
1024メガバイト |
||
17 |
メモリサイズ※2 |
83メガバイト |
||
18 |
クライアント定義ファイル |
バッファサイズ(1024バイト〜16777216バイト) |
4096バイト |
- 注※1
-
指定した値が,JavaVMのヒープサイズオプション(-Xmxおよび-Xms)に適用されます。
- 注※2
-
指定した値が,JavaVMのメモリサイズオプション(-XX:PermSizeおよび-XX:MaxPermSize)に適用されます。
(1) サーバ定義ファイル
(b) eads.server.max.datasize.enable
EADsサーバが受け付けるデータの最大サイズのチェックを有効にするか,無効にするかを指定します。
- true:
-
データの最大サイズのチェックを有効にします。
- false:
-
データの最大サイズのチェックを無効にします。
(c) eads.server.max.datasize
EADsサーバが受け付けるデータの最大サイズ(単位:バイト)を指定します。
eads.server.max.datasize.enableパラメタがfalseの場合,この指定は無効となります。
(d) eads.consensus.message.buffersize
合意メッセージの送受信バッファサイズ(単位:バイト)を指定します。
OSで設定されたTCPのウィンドウサイズを指定することを推奨します。
なお,OSによって,このパラメタに指定した値と異なるサイズのバッファが使用されることがあります。
(e) eads.consensus.message.send.queuesize
合意メッセージの送信キューの長さを指定します。
送信キューは,合意メッセージの送信先となるEADsサーバの数だけ確保されます。
次の計算式から見積もってください。見積もった結果,このパラメタの最小値よりも小さい場合は,最小値を設定してください。
2×a×b+2×a×キャッシュ数+(c−1)×a×キャッシュ数
-
a:クラスタ定義のeads.cache.prepare.numパラメタの指定値
-
b:サーバ定義のeads.cluster.controller.cache.max_execute_threadsパラメタの指定値
-
c:クラスタ定義のeads.replication.factorパラメタの指定値
- 注意事項
-
設定した送信キューの長さを超える量の合意メッセージが送信キューに入った場合,通信エラーになります。
(f) eads.consensus.message.send.max_queuedatasize
合意メッセージの送信キューに格納できるデータの最大サイズ(単位:バイト)を指定します。
次の計算式から見積もってください。
2×a×b×(c+キャッシュ数)+d×(e−1)×キャッシュ数
-
a:クラスタ定義のeads.cache.prepare.numパラメタの指定値
-
b:更新操作の履歴の最大サイズ
更新操作の履歴の最大サイズ(単位:バイト)を見積もる計算式を次に示します。
クラスタ定義のeads.server.max_key_sizeパラメタの指定値+valueの最大サイズ※×2
注※ put,create,update,replace実行時に指定するvalueの最大サイズです。
-
c:サーバ定義のeads.cluster.controller.cache.max_execute_threadsパラメタの指定値
-
d:サーバ定義のeads.consensus.fillgap.copy.dataSizeパラメタの指定値
-
e:クラスタ定義のeads.replication.factorパラメタの指定値
- 注意事項
-
見積もった結果に対して非常に小さい値を設定した場合,送信キューあふれによるリトライが頻発し,処理が継続できなくなるおそれがあります。
(g) eads.restore.connection.buffersize
復旧処理で使用するデータの送受信バッファサイズ(単位:バイト)を指定します。
OSで設定されたTCPのウィンドウサイズを指定することを推奨します。
なお,OSによって,このパラメタに指定した値と異なるサイズのバッファが使用されることがあります。
(h) eads.restore.dataSender.sendSize
復旧処理で送信するデータサイズ(単位:バイト)を指定します。
復旧処理では,データの整合性を回復するために,稼働中のEADsサーバが復旧対象のEADsサーバにデータを送信します。eads.restore.dataSender.sendIntervalパラメタに指定した間隔で,このパラメタの指定値を超えるまで,10キロバイト単位でデータを連続して送信します。
復旧処理については,「9.3.2(5) クラスタの復旧処理」を参照してください。
ディスクキャッシュ,および2Wayキャッシュを使用する場合,このパラメタの指定は無効になり,キャッシュ定義のeads.cache.restore.dataSender.sendSizeパラメタの指定値が有効となります。
- 注意事項
-
復旧処理では最低1個のデータを送信します。そのため,このパラメタにEADsサーバに格納しているデータのサイズよりも小さい値を指定しても,送信量を制限することはできません。
(i) eads.consensus.fillgap.copy.dataSize
EADsサーバに対して,更新操作の履歴の補完処理でデータをコピーする際,1回当たりに送信するデータサイズ(単位:バイト)を指定します。
更新操作の履歴の補完処理については,「9.3.2(6) 更新操作の履歴の補完処理」を参照してください。
次の計算式から見積もってください。
更新操作の履歴の最大サイズ×合意処理で一度に合意できる処理の最大数
- 更新操作の履歴の最大サイズ:
-
更新操作の履歴の最大サイズ(単位:バイト)を見積もる計算式を次に示します。
クラスタ定義のeads.server.max_key_sizeパラメタの指定値+valueの最大サイズ※×2
注※ put,create,update,replace実行時に指定するvalueの最大サイズです。
- 合意処理で一度に合意できる処理の最大数:
-
クラスタ定義のeads.cache.prepare.numパラメタの指定値
- 注意事項
-
-
メモリ使用量やCPU使用率に影響するため,必要以上に大きな値を設定しないでください。
-
このパラメタの指定値を超えるサイズのデータが送信されることがあります。
-
データサイズを小さく設定しても,最低1履歴分は補完処理が行われます。
-
(j) eads.consensus.external.heapsize
更新操作の履歴が格納される領域のサイズ(単位:メガバイト)を指定します。
このパラメタの指定値が,起動設定のeads.java.external.heapsizeパラメタの指定値×0.97(メガバイト単位で小数点以下は切り捨て)より大きい場合,EADsサーバの起動に失敗するので注意してください。
(k) eads.management.resume.sendSize
eztool resumeコマンド実行時に,1回で転送する差分のデータサイズ(単位:バイト)を指定します。
0を指定すると,1回の通信でデータ1つを送信します。
(2) クラスタ定義ファイル
(a) eads.server.max_key_size
クラスタに格納できるkeyの最大サイズ(単位:バイト)を指定します。
このパラメタに指定したサイズでkeyの格納領域を確保します。
keyの最大サイズを制限することで,デフォルトのまま使用するよりも,keyが格納されるJavaヒープのサイズを小さく設計することができます。
- 注意事項
-
-
keyの最大サイズを大きく設定したクラスタで出力されたストアデータファイルは,それよりも小さく設定したクラスタでは読み込めないことがあります。
-
ディスクキャッシュ,および2Wayキャッシュを使用する場合,keyの最大サイズを大きく設定したクラスタで出力されたキャッシュデータファイルとキャッシュインデックスファイルは,それよりも小さく設定したクラスタでは,データの再配置に使用できないことがあります。
-
(b) eads.cache.prepare.num
合意処理で,一度に合意できる処理の最大数を指定します。
次に示す値のうち,小さい方の値を設定してください。ただし,EADsサーバ間で値が異なる場合は,クラスタ内で最大の値を設定してください。
-
サーバ定義のeads.server.max_connectionsパラメタの指定値
-
サーバ定義のeads.server.cache.max_execute_threadsパラメタの指定値+サーバ定義のeads.server.function_container.max_execute_threadsパラメタの指定値
- 注意事項
-
メモリ使用量に影響するため,必要以上に大きな値を設定しないでください。
(3) 起動設定ファイル
(a) eads.prf.buffersize
PRFデーモンが共用メモリに確保するバッファのサイズ(単位:キロバイト)を指定します。
起動設定のeads.prf.filesizeパラメタの指定値よりも大きな値は指定できません。
(c) eads.java.external.heapsize
valueおよび更新操作の履歴が格納されるExplicitヒープのサイズ(単位:メガバイト)を指定します。
指定したExplicitヒープサイズの3%(メガバイト単位で小数点以下は切り上げ)は管理領域として使用されます。
サーバ定義のeads.consensus.external.heapsizeパラメタの指定値が,このパラメタの指定値×0.97(メガバイト単位で小数点以下は切り捨て)より大きい場合,EADsサーバの起動に失敗するので注意してください。