9.1.3 メモリ・バッファに関連するパラメタ
メモリ・バッファに関連するパラメタの一覧を次の表に示します。
項番 |
定義ファイル |
パラメタ名 |
指定する値 |
デフォルト値 |
---|---|---|---|---|
1 |
サーバ定義ファイル |
バッファサイズ(1024バイト〜16777216バイト) |
4096バイト |
|
2 |
バッファサイズ(1024バイト〜16777216バイト) |
131071バイト |
||
3 |
キューの長さ (10000〜1000000) |
100000 |
||
4 |
1048576バイト〜2147483647バイト |
16777216バイト |
||
5 |
バッファサイズ(1024バイト〜16777216バイト) |
131071バイト |
||
6 |
10240バイト〜2147483647バイト |
1048576バイト |
||
7 |
10240バイト〜2147483647バイト |
1048576バイト |
||
8 |
1024バイト〜16777216バイト |
10240バイト |
||
9 |
0バイト〜2147483647バイト |
1048576バイト |
||
10 |
0〜9223372036854775807バイト |
なし |
||
11 |
共通設定ファイル |
1バイト〜1024バイト |
1024バイト |
|
12 |
1〜100 |
20 |
||
13 |
1メガバイト〜268435456メガバイト |
450メガバイト |
||
14 |
ヒープサイズ※1 |
3072メガバイト |
||
15 |
ヒープサイズ(2メガバイト〜2147483647メガバイト) |
1024メガバイト |
||
16 |
メモリサイズ※2 |
83メガバイト |
||
17 |
|
true |
||
18 |
1024〜1073741824 |
1048576 |
||
19 |
1メガバイト〜268435456メガバイト |
30メガバイト |
||
20 |
クライアント定義ファイル |
バッファサイズ(1024バイト〜16777216バイト) |
4096バイト |
- 注※1
-
指定した値が,JavaVMのヒープサイズオプション(-Xmxおよび-Xms)に適用されます。
- 注※2
-
指定した値が,JavaVMのメモリサイズオプション(-XX:MetaspaceSizeおよび-XX:MaxMetaspaceSize)に適用されます。
- 〈この項の構成〉
(1) サーバ定義ファイル
(b) eads.replication.connection.buffersize
合意メッセージの送受信バッファサイズ(単位:バイト)を指定します。
OSで設定されたTCPのウィンドウサイズを指定することを推奨します。
なお,OSによって,このパラメタに指定した値と異なるサイズのバッファが使用されることがあります。
(c) eads.replication.sendQueue.length
合意メッセージの送信キューの長さを指定します。
送信キューは,合意メッセージの送信先となるEADSサーバの数だけ確保されます。
次の計算式から見積もってください。見積もった結果,このパラメタの最小値よりも小さい場合は,最小値を設定してください。
2×a×b+2×a×キャッシュ数+(c−1)×a×キャッシュ数
-
a:共通設定のeads.replication.preparationsの指定値
-
b:共通設定のeads.replication.factor−1(データの多重度が1の場合は1)
-
c:共通設定のeads.replication.factorパラメタの指定値
- 注意事項
-
設定した送信キューの長さを超える量の合意メッセージが送信キューに入った場合,通信エラーになります。
(d) eads.replication.sendQueue.datasize
合意メッセージの送信キューに格納できるデータの最大サイズ(単位:バイト)を指定します。
次の計算式から見積もってください。
2×a×b×(c+キャッシュ数)+d×(e−1)×キャッシュ数
-
a:共通設定のeads.replication.preparationsの指定値
-
b:更新操作の履歴の最大サイズ
更新操作の履歴の最大サイズ(単位:バイト)を見積もる計算式を次に示します。
MAX(keyの最大サイズ+valueの最大サイズ×2,(keyの最大サイズ+valueの最大サイズ)×最大同時更新データ件数)
- (凡例)
-
-
MAX:
計算結果の最も大きい値を選ぶことを示しています。
(例)MAX(2,10)の計算結果は10となります。
-
keyの最大サイズ:
共通設定のeads.cache.key.maxsizeパラメタの指定値
-
valueの最大サイズ:
put,create,update,replace実行時に指定するvalueの最大サイズです。
-
最大同時更新データ件数:
メモリキャッシュを使用して,データの一括操作を実行する場合は10を代入します。それ以外の場合は,1を代入します。
-
-
c:共通設定のeads.replication.factor−1(データの多重度が1の場合は1)
-
d:サーバ定義のeads.replication.fillgap.copy.datasizeパラメタの指定値
-
e:共通設定のeads.replication.factorパラメタの指定値
- 注意事項
-
見積もった結果に対して非常に小さい値を設定した場合,送信キューあふれによるリトライが頻発し,処理が継続できなくなるおそれがあります。
(e) eads.transfer.connection.buffersize
復旧処理,スケールアウト処理,およびリバランス処理で使用するデータの送受信バッファサイズ(単位:バイト)を指定します。
OSで設定されたTCPのウィンドウサイズを指定することを推奨します。
なお,OSによって,このパラメタに指定した値と異なるサイズのバッファが使用されることがあります。
(f) eads.transfer.datasize
復旧処理およびスケールアウト処理で送信するデータサイズ(単位:バイト)を指定します。
復旧処理およびスケールアウト処理では,復旧対象のEADSサーバ,およびスケールアウト処理で追加したEADSサーバでこのパラメタに指定した値が適用されます。
復旧処理およびスケールアウト処理では,データの整合性を回復するために,稼働中のEADSサーバが復旧対象のEADSサーバ,およびスケールアウト処理で追加したEADSサーバにデータを送信します。eads.transfer.intervalパラメタに指定した間隔で,このパラメタの指定値を超えるまで,10キロバイト単位でデータを連続して送信します。
復旧処理については,「9.3.2(5) クラスタの復旧処理」を参照してください。スケールアウト処理については,「9.3.2(6) クラスタのスケールアウト処理(EADSサーバの追加)」を参照してください。
ディスクキャッシュ,および2Wayキャッシュを復旧する場合,このパラメタの指定は無効になり,キャッシュ定義のeads.cache.disk.transfer.datasizeパラメタの指定値が有効となります。
- 注意事項
-
復旧処理およびスケールアウト処理では,最低1個のデータを送信します。そのため,このパラメタにEADSサーバに格納しているデータのサイズよりも小さい値を指定しても,送信量を制限することはできません。
(g) eads.rebalance.transfer.datasize
リバランス処理のデータ転送で送信するデータサイズ(単位:バイト)を指定します。
リバランス処理では,EADSサーバが新しく管理するレンジのデータは,元々そのレンジを管理していたEADSサーバ(分割前のレンジを管理していたEADSサーバ)から転送されます。その際,このパラメタに指定したデータサイズで,データを転送します。
分割前のレンジを管理していたEADSサーバと,分割後(結合後)のレンジを管理するEADSサーバで,このパラメタの指定値が異なる場合には,分割後(結合後)のレンジを管理するEADSサーバのパラメタの指定値が適用されます。
なお,eztool rebalanceコマンドの--datasizeオプションを指定した場合には,このパラメタの指定値よりも,--datasizeオプションの指定値が優先されます。
eads.rebalance.transfer.intervalパラメタに指定した間隔で,このパラメタの指定値を超えるまで,10キロバイト単位でデータを連続して送信します。
- 注意事項
-
リバランス処理では,最低1個のデータを送信します。そのため,このパラメタにEADSサーバに格納しているデータのサイズよりも小さい値を指定しても,送信量を制限することはできません。
(h) eads.replication.fillgap.copy.datasize
EADSサーバに対して,更新操作の履歴の補完処理でデータをコピーする際,1回当たりに送信するデータサイズ(単位:バイト)を指定します。
更新操作の履歴の補完処理については,「9.3.2(8) 更新操作の履歴の補完処理」を参照してください。
次の計算式から見積もってください。
更新操作の履歴の最大サイズ×合意処理で一度に合意できる処理の最大数
- 更新操作の履歴の最大サイズ:
-
更新操作の履歴の最大サイズ(単位:バイト)を見積もる計算式を次に示します。
MAX(keyの最大サイズ+valueの最大サイズ×2,(keyの最大サイズ+valueの最大サイズ)×最大同時更新データ件数)
- (凡例)
-
-
MAX:
計算結果の最も大きい値を選ぶことを示しています。
(例)MAX(2,10)の計算結果は10となります。
-
keyの最大サイズ:
共通設定のeads.cache.key.maxsizeパラメタの指定値
-
valueの最大サイズ:
put,create,update,replace実行時に指定するvalueの最大サイズです。
-
最大同時更新データ件数:
メモリキャッシュを使用して,データの一括操作を実行する場合は10を代入します。それ以外の場合は,1を代入します。
-
- 合意処理で一度に合意できる処理の最大数:
-
共通設定のeads.replication.preparationsの指定値
- 注意事項
-
-
メモリ使用量やCPU使用率に影響するため,必要以上に大きな値を設定しないでください。
-
このパラメタの指定値を超えるサイズのデータが送信されることがあります。
-
データサイズを小さく設定しても,最低1履歴分は補完処理が行われます。
-
(i) eads.admin.operation.resume.send.datasize
eztool resumeコマンド実行時に,1回で転送する差分のデータサイズ(単位:バイト)を指定します。
0を指定すると,1回の通信でデータ1つを送信します。
(j) eads.java.nio.maxCachedBufferSize
EADSサーバでキャッシュされる1ダイレクトバッファ当たりのサイズの上限を指定します。上限を設定することでダイレクトバッファのメモリ使用量を制限できます。
このパラメタに指定した値は,システムプロパティjdk.nio.maxCachedBufferSizeに設定されます。
このパラメタに値を指定しなかった場合,または0〜263−1の範囲外の値もしくは数値以外を指定した場合は,263−1として扱われ,無制限となります。
このパラメタにはeads.server.connection.buffersizeパラメタと同じ値を指定することを推奨します。ただし,eads.server.nonBlocking.enableパラメタの指定値がfalse,かつeads.server.connection.buffersizeパラメタの指定値が8192未満の場合は,8192を指定することを推奨します。
EADSサーバの処理性能を重視する場合は,パラメタに値を指定しないか,またはEADSクライアントとEADSサーバ間で通信するデータの最大サイズを設定してください。
- 注意事項
-
-
このパラメタに1024未満の値を指定すると,性能が大きく劣化することがあります。
-
このパラメタに指定した値以上のデータサイズを扱うリクエストでは,このパラメタに値を指定しない場合に比べて,性能が劣化することがあります。
-
(2) 共通設定ファイル
(a) eads.cache.key.maxsize
クラスタに格納できるkeyの最大サイズ(単位:バイト)を指定します。
このパラメタに指定したサイズでkeyの格納領域を確保します。
keyの最大サイズを制限することで,デフォルトのまま使用するよりも,keyが格納されるJavaヒープのサイズを小さく設計することができます。
- 注意事項
-
-
keyの最大サイズを大きく設定したクラスタで出力されたストアデータファイルは,それよりも小さく設定したクラスタでは読み込めないことがあります。
-
ディスクキャッシュ,および2Wayキャッシュを使用する場合,keyの最大サイズを大きく設定したクラスタで出力されたキャッシュデータファイルとキャッシュインデックスファイルは,それよりも小さく設定したクラスタでは,データの再配置に使用できないことがあります。
-
(b) eads.replication.preparations
合意処理で,一度に合意できる処理の最大数を指定します。
同時に実行される更新操作が多い場合,大きな値を設定することでスループットが向上する場合がありますが,デフォルト値のままにしておくことを推奨します。
(c) eads.replication.external.heapsize
更新操作の履歴が格納される領域のサイズ(単位:メガバイト)を指定します。
このパラメタの指定値が,次のどちらかを満たす場合,EADSサーバの起動に失敗するので注意してください。
-
共通設定のeads.java.external.heapsizeパラメタの指定値×0.97(メガバイト単位で小数点以下は切り捨て)より大きい場合
-
サーバ定義のeads.server.nonBlocking.enableパラメタがtrue,かつ共通設定のeads.server.nonBlocking.external.heapsizeパラメタの指定値+このパラメタの指定値が,共通設定のeads.java.external.heapsizeパラメタの指定値×0.97(メガバイト単位で小数点以下は切り捨て)より大きい場合
(e) eads.java.external.heapsize
valueおよび更新操作の履歴が格納されるExplicitヒープのサイズ(単位:メガバイト)を指定します。
指定したExplicitヒープサイズの3%(メガバイト単位で小数点以下は切り上げ)は管理領域として使用されます。
このパラメタの指定値が,次のどちらかを満たす場合,EADSサーバの起動に失敗するので注意してください。
-
共通設定のeads.replication.external.heapsizeパラメタの指定値が,このパラメタの指定値×0.97(メガバイト単位で小数点以下は切り捨て)より大きい場合
-
サーバ定義のeads.server.nonBlocking.enableパラメタがtrue,かつ共通設定のeads.server.nonBlocking.external.heapsizeパラメタの指定値+eads.replication.external.heapsizeパラメタの指定値が,このパラメタの指定値×0.97(メガバイト単位で小数点以下は切り捨て)より大きい場合
(f) eads.java.metaspace.maxsize
metaspace領域のサイズ(単位:メガバイト)を指定します。
metaspace領域は,ロードされたEADSサーバ,ユーザファンクションのclassなどの情報が格納される領域です。
(g) eads.cache.limiter.enable
データ総量監視機能を有効にするかどうかを指定します。
データ総量監視機能を有効にすると,データの格納先の容量が不足することが予想される場合に,その処理をエラーとすることで,EADSサーバがダウンすることを防ぎます。
- true:
-
データ総量監視機能を有効にします。
- false:
-
データ総量監視機能を無効にします。
(h) eads.cache.keyCount
データ総量監視機能で監視する,1レンジ当たりのデータ件数を指定します。
eads.cache.limiter.enableパラメタにfalseを指定している場合(データ総量監視機能が無効になっている場合),このパラメタの指定値は無効となります。
(i) eads.server.nonBlocking.external.heapsize
ノンブロッキングI/O通信バッファサイズ(単位:メガバイト)を指定します。詳細は,「7.8.3 ノンブロッキングI/O通信制御に依存するパラメタ」のeads.server.nonBlocking.external.heapsizeパラメタを参照してください。