4.1.3 Explicitヒープサイズを見積もる
Explicitヒープサイズを見積もる計算式を次に示します。
keyとvalueのうち,value部分が格納される領域と,更新操作の履歴が格納される領域を足した値がExplicitヒープサイズとなります。なお,Explicitヒープサイズの3%は管理領域として使用されます。
算出した値は,起動設定のeads.java.external.heapsizeパラメタに指定します。
Explicitヒープサイズ(単位:メガバイト)=(a÷1,0242+b÷1,0242)÷0.97 |
- 変数の説明
-
a:value部分が格納される領域のサイズ
b:更新操作の履歴が格納される領域のサイズ
各領域のサイズを見積もる計算式を次に示します。
(1) value部分が格納される領域のサイズ
keyとvalueのうち,value部分が格納される領域のサイズを見積もる計算式を次に示します。ただし,valueをExplicitヒープに格納しない(キャッシュタイプがディスクキャッシュのキャッシュだけを使用する)場合は,0としてください。
value部分が格納される領域のサイズ(単位:バイト)= (メモリキャッシュおよび2Wayキャッシュに格納するデータ1件当たりのvalueサイズ※1(単位:バイト) +2バイト)※2 ×(メモリキャッシュおよび2Wayキャッシュに格納するデータ件数の合計 +メモリキャッシュおよび2Wayキャッシュのキャッシュ数の合計 ×データの多重度+500) |
- 注※1
-
valueのサイズについては,「15.2.2(2) valueとして指定できるデータ」を参照してください。
- 注※2
-
この括弧内の計算式は16バイト単位で切り上げて見積もってください。
- データの多重度:
-
クラスタ定義のeads.replication.factorパラメタの指定値
(2) 更新操作の履歴が格納される領域のサイズ
更新操作の履歴が格納される領域のサイズを見積もる計算式を次に示します。
算出した値は,メガバイト単位に切り上げてから,サーバ定義のeads.consensus.external.heapsizeパラメタに指定します。
更新操作の履歴が格納される領域(単位:バイト)= {(データの多重度×2−1)×キャッシュ数×更新操作の履歴の最大数+500} ×(更新操作の履歴の最大サイズ(単位:バイト)+1,024)+1,048,576 |
注 小数点以下の値は切り上げます。
- データの多重度:
-
クラスタ定義のeads.replication.factorパラメタの指定値
- 更新操作の履歴の最大数:
-
更新操作の履歴の最大数を見積もる計算式を次に示します。
更新操作の履歴の最大数=
更新操作の履歴が保持される最大数+合意処理で一度に合意できる処理の最大数
- 更新操作の履歴が保持される最大数:
-
更新操作の履歴が保持される最大数を見積もる計算式を次に示します。
更新操作の履歴が保持される最大数=
(ハートビートのタイムアウト時間÷1,000)
×1EADsサーバへのデータの更新操作のスループット(単位:件/秒)※
ハートビートのタイムアウト時間:
サーバ定義のeads.cluster.heartbeat.timeoutパラメタの指定値
注※
キャッシュごとにスループットが大きく異なる場合は,キャッシュごとに算出したスループットのうち,最大の値を代入してください。
- 合意処理で一度に合意できる処理の最大数:
-
クラスタ定義のeads.cache.prepare.numパラメタの指定値
- 更新操作の履歴の最大サイズ(単位:バイト):
-
更新操作の履歴の最大サイズを見積もる計算式を次に示します。
更新操作の履歴の最大サイズ(単位:バイト)=
クラスタに格納できるkeyの最大サイズ+valueの最大サイズ×2
- クラスタに格納できるkeyの最大サイズ:
-
クラスタ定義のeads.server.max_key_sizeパラメタの指定値
- valueの最大サイズ:
-
put,create,update,replace実行時に指定するvalueの最大サイズ
- 注意事項
-
-
Explicitヒープの見積もりが適切でない場合,Explicitヒープの空き容量が少なくなると,valueおよび更新操作の履歴のフラグメントが発生し,性能が低下するおそれがあります。また,Explicitヒープの空き容量が不足して,valueを格納できなくなると,EADsサーバが縮退します。
-
Explicitヒープの空き容量が不足して更新操作の履歴が格納できなくなると,EADsサーバは既存の更新操作の履歴を削除することでExplicitヒープを確保しようとします。これによって,EADsサーバ間での更新操作の履歴の補完処理に失敗するおそれがあります。更新操作の履歴の補完処理については,「9.3.2(6) 更新操作の履歴の補完処理」を参照してください。
-