4.1.2 Javaヒープサイズを見積もる
Javaヒープサイズを見積もる計算式を次に示します。
(1) 1EADsサーバ当たりのJavaヒープサイズを見積もる
1EADsサーバ当たりのTenured領域サイズを3倍にした値がJavaヒープサイズとなります。
算出した値は,起動設定のeads.java.heapsizeパラメタに指定します。デフォルトは3ギガバイトです。
- 参考
-
ディスク上にキャッシュを作成する場合は,そのキャッシュが使用する1EADsサーバ当たりのメモリ使用量の合計を,Javaヒープサイズに加算します。見積もりについては,「4.1.2(2) ディスク上のキャッシュが使用するJavaヒープサイズを見積もる」を参照してください。
Javaヒープサイズ(単位:メガバイト)= {(クラスタに格納できるkeyの最大サイズ(単位:バイト)+750バイト) ×1EADsサーバに格納するデータ件数 +(クラスタに格納できるkeyの最大サイズ(単位:バイト)+250バイト) ×グループ名の数※1 +(EADsサーバへの最大同時接続数×データの多重度) ×((データの送受信バッファのサイズ(単位:バイト)×2+15×1,024) +(データの送受信バッファのサイズ(単位:バイト)×2+3,072))※2 +EADsサーバ数×409,600バイト +更新操作の履歴の管理で使用するJavaヒープ領域(単位:バイト) +縮退処理・復旧処理で使用するJavaヒープ領域(単位:バイト) +ユーザイベントハンドラで使用するJavaヒープ領域(単位:バイト)} ×3÷1,0242 |
- 注※1
-
グループを階層化している場合は,先頭のグループ名の数です。
- 注※2
-
この括弧内の計算式は64キロバイト単位で切り上げて見積もってください。
- クラスタに格納できるkeyの最大サイズ(単位:バイト):
-
クラスタ定義のeads.server.max_key_sizeパラメタの指定値
- EADsサーバへの最大同時接続数:
-
サーバ定義のeads.server.max_connectionsパラメタの指定値
- データの多重度:
-
クラスタ定義のeads.replication.factorパラメタの指定値
- データの送受信バッファのサイズ(単位:バイト):
-
サーバ定義のeads.connection.buffersizeパラメタの指定値
- 更新操作の履歴の管理で使用するJavaヒープ領域(単位:バイト):
-
更新操作の履歴の管理で使用するJavaヒープ領域を見積もる計算式を次に示します。
更新操作の履歴の管理で使用するJavaヒープ領域(単位:バイト)=
3,584×(更新操作の履歴が保持される最大数
+合意処理で一度に合意できる処理の最大数)
×(データの多重度×2−1)×キャッシュ数
+16×合意メッセージの送信キューの長さ×(EADsサーバ数−1)
- 更新操作の履歴が保持される最大数:
-
更新操作の履歴が保持される最大数を見積もる計算式を次に示します。
更新操作の履歴が保持される最大数=
(ハートビートのタイムアウト時間÷1,000)
×1EADsサーバへのデータの更新操作のスループット(単位:件/秒)※
ハートビートのタイムアウト時間:
サーバ定義のeads.cluster.heartbeat.timeoutパラメタの指定値
注※
キャッシュごとにスループットが大きく異なる場合は,キャッシュごとに算出したスループットのうち,最大の値を代入してください。
- 合意処理で一度に合意できる処理の最大数:
-
クラスタ定義のeads.cache.prepare.numパラメタの指定値
- データの多重度:
-
クラスタ定義のeads.replication.factorパラメタの指定値
- 合意メッセージの送信キューの長さ:
-
サーバ定義のeads.consensus.message.send.queuesizeパラメタの指定値
- 縮退処理・復旧処理で使用するJavaヒープ領域(単位:バイト):
-
縮退処理および復旧処理で使用するJavaヒープ領域の最大値をそれぞれ見積もり,どちらか大きい方の値を代入してください。
縮退処理で使用するJavaヒープ領域(単位:バイト)=
(合意処理で一度に合意できる処理の最大数×2
×更新操作の履歴の最大サイズ(単位:バイト)
×(キャッシュ単位に行われる処理の最大同時実行スレッド数
+キャッシュ数)+(データの多重度−1)×キャッシュ数
×更新操作の履歴の補完処理で送信するデータサイズ(単位:バイト))
×MIN(4×(データの多重度−1),EADsサーバ数−1)
復旧処理で使用するJavaヒープ領域(単位:バイト)=
更新操作の履歴が格納される領域のサイズ(単位:メガバイト)×1,0242
÷(データの多重度×2−1)
+復旧処理で送信するデータサイズ(単位:バイト)
- 合意処理で一度に合意できる処理の最大数:
-
クラスタ定義のeads.cache.prepare.numパラメタの指定値
- 更新操作の履歴の最大サイズ(単位:バイト):
-
更新操作の履歴の最大サイズを見積もる計算式を次に示します。
更新操作の履歴の最大サイズ(単位:バイト)=
クラスタに格納できるkeyの最大サイズ+valueの最大サイズ×2
クラスタに格納できるkeyの最大サイズ:
クラスタ定義のeads.server.max_key_sizeパラメタの指定値
valueの最大サイズ:
put,create,update,replace実行時に指定するvalueの最大サイズ
- キャッシュ単位に行われる処理の最大同時実行スレッド数:
-
サーバ定義のeads.cluster.controller.cache.max_execute_threadsパラメタの指定値
このパラメタに0を指定している場合,データの多重度−1を代入します。
- データの多重度:
-
クラスタ定義のeads.replication.factorパラメタの指定値
- 更新操作の履歴の補完処理で送信するデータサイズ(単位:バイト):
-
サーバ定義のeads.consensus.fillgap.copy.dataSizeパラメタの指定値
- MIN:
-
計算結果の最も小さい値を選ぶことを示しています。
(例)MIN(3×6,4+7)の計算結果は11となります。
- 更新操作の履歴が格納される領域のサイズ:
-
サーバ定義のeads.consensus.external.heapsizeパラメタの指定値
見積もりについては,「4.1.3(2) 更新操作の履歴が格納される領域のサイズ」を参照してください。
- 復旧処理で送信するデータサイズ:
-
復旧処理で送信するデータサイズをキャッシュごとに見積もり,その中で最大の値を代入してください。
-
メモリキャッシュの場合
サーバ定義のeads.restore.dataSender.sendSizeパラメタの指定値
-
ディスクキャッシュ,および2Wayキャッシュの場合
キャッシュ定義のeads.cache.restore.dataSender.sendSizeパラメタの指定値
-
- ユーザイベントハンドラで使用するJavaヒープ領域(単位:バイト):
-
ユーザイベントハンドラで使用するJavaヒープ領域を見積もる計算式を次に示します。ただし,ユーザイベントハンドラを使用しない場合は0としてください。
ユーザイベントハンドラで使用するJavaヒープ領域(単位:バイト)=
(クラスタに格納できるkeyの最大サイズ(単位:バイト)+100バイト)
×MIN(データ操作の最大同時実行スレッド数+ユーザファンクション全体の最大同時実行スレッド数,
EADsサーバへの最大同時接続数)
- クラスタに格納できるkeyの最大サイズ(単位:バイト):
-
クラスタ定義のeads.server.max_key_sizeパラメタの指定値
- MIN:
-
計算結果の最も小さい値を選ぶことを示しています。
(例)MIN(3×6,4+7)の計算結果は11となります。
- データ操作の最大同時実行スレッド数:
-
サーバ定義のeads.server.cache.max_execute_threadsパラメタの指定値
- ユーザファンクション全体の最大同時実行スレッド数:
-
サーバ定義のeads.server.function_container.max_execute_threadsパラメタの指定値
- EADsサーバへの最大同時接続数:
-
サーバ定義のeads.server.max_connectionsパラメタの指定値
(2) ディスク上のキャッシュが使用するJavaヒープサイズを見積もる
ディスクキャッシュ,および2Wayキャッシュを使用する場合は,各キャッシュが使用するJavaヒープサイズを求めます。
ディスクキャッシュ,および2Wayキャッシュ1つ当たりのJavaヒープサイズを見積もる計算式を次に示します。この計算式でキャッシュごとに見積もったあと,算出した値を合計します。その値を「4.1.2(1) 1EADsサーバ当たりのJavaヒープサイズを見積もる」で見積もったJavaヒープサイズに加算します。
-
ディスクキャッシュの場合
Javaヒープサイズの見積もりの値に加算する値(単位:キロバイト)=
(1,600+8×1レンジ当たりのキャッシュデータファイルの面数
+0.8×格納するデータ件数)×データの多重度
-
2Wayキャッシュの場合※
Javaヒープサイズの見積もりの値に加算する値(単位:キロバイト)=
(1,600+8×1レンジ当たりのキャッシュデータファイルの面数
−0.4×格納するデータ件数)×データの多重度
- 注※
-
格納するデータ件数が多いときは,計算結果が負の値になることがあります。そのときは,負の値のまま代入してください。
- 1レンジ当たりのキャッシュデータファイルの面数:
-
キャッシュ定義のeads.cache.disk.filenumパラメタの指定値
見積もりについては,「4.4.1 キャッシュデータファイルのサイズおよび面数を見積もる」を参照してください。
- 格納するデータ件数:
-
格納するデータ件数を見積もる計算式を次に示します。
格納するデータ件数=
クラスタ全体(1キャッシュ)に格納するデータ件数÷クラスタを構成するEADsサーバ数
- データの多重度:
-
クラスタ定義のeads.replication.factorパラメタの指定値