Hitachi

インメモリデータグリッド Hitachi Elastic Application Data Store ユーザーズガイド


4.1.2 Javaヒープサイズを見積もる

Javaヒープサイズを見積もる計算式を次に示します。

〈この項の構成〉

(1) 1EADSサーバ当たりのJavaヒープサイズを見積もる

1EADSサーバ当たりのTenured領域の使用量を3倍にした値がJavaヒープサイズとなります。

算出した値は,共通設定のeads.java.heapsizeパラメタに指定します。デフォルトは3ギガバイトです。

参考

ディスク上にキャッシュを作成する場合は,そのキャッシュが使用するJavaヒープサイズの合計を,1EADSサーバ当たりのJavaヒープサイズに加算します。見積もりについては,「4.1.2(2) ディスク上のキャッシュが使用するJavaヒープサイズを見積もる」を参照してください。

Javaヒープサイズ(単位:メガバイト)=

 {(クラスタに格納できるkeyの最大サイズ(単位:バイト)+850バイト)

 ×1EADSサーバに格納するデータ件数

 +(クラスタに格納できるkeyの最大サイズ(単位:バイト)+250バイト)

 ×グループ名の数※1

 +EADSサーバへの最大同時接続数

 ×(14+データの送受信バッファのサイズ(単位:バイト)×3)

 +EADSサーバ数※2×409,600バイト

 +更新操作の履歴の管理で使用するJavaヒープ領域(単位:バイト)

 +縮退処理・復旧処理・スケールアウト処理・リバランス処理で使用するJavaヒープ領域(単位:バイト)

 +データ自動削除機能で使用するJavaヒープ領域(単位:バイト)}

 ×3÷1,0242

注※1

グループを階層化している場合は,先頭のグループ名の数です。

注※2

クラスタを停止させないで,EADSサーバをクラスタに追加する(スケールアウト処理を実行する)予定がある場合は,EADSサーバ数に,追加するEADSサーバの数を含めてください。追加するEADSサーバの数が予測できない場合は,EADSサーバ数に,96を代入してください。

クラスタに格納できるkeyの最大サイズ(単位:バイト):

共通設定のeads.cache.key.maxsizeパラメタの指定値

1EADSサーバに格納するデータ件数

4.1.2(1)(a) 1EADSサーバに格納するデータ件数」を参照してください。

EADSサーバへの最大同時接続数:

サーバ定義のeads.server.maxConnectionsパラメタの指定値

データの送受信バッファのサイズ(単位:バイト):

サーバ定義のeads.server.connection.buffersizeパラメタの指定値

更新操作の履歴の管理で使用するJavaヒープ領域(単位:バイト):

4.1.2(1)(b) 更新操作の履歴の管理で使用するJavaヒープ領域」を参照してください。

縮退処理・復旧処理・スケールアウト処理・リバランス処理で使用するJavaヒープ領域(単位:バイト):

4.1.2(1)(c) 縮退処理・復旧処理・スケールアウト処理・リバランス処理で使用するJavaヒープ領域」を参照してください。

データ自動削除機能で使用するJavaヒープ領域(単位:バイト):

次の計算式で見積もった値を代入してください。

データ自動削除機能で使用するJavaヒープ領域(単位:バイト)=

 a+Σb(キャッシュ数)

a:

データ自動削除機能の使用有無に関係なく加算が必要なヒープサイズです。次の計算式で見積もった値を代入してください。

1,232バイト+(データの多重度×2)×キャッシュ数×376バイト

b:

キャッシュごとに加算が必要なヒープサイズです。1EADSサーバに格納するデータ件数分のデータのアクセス順を管理するリストのヒープサイズを追加します。

次の計算式で見積もった値を代入してください。もし,データ自動削除機能を使用しない場合は,次の計算式の中で「eads.cache.eviction.keyCountパラメタの指定値」に0バイトを代入してください。

36,968バイト+eads.cache.eviction.keyCountパラメタの指定値×72バイト

(a) 1EADSサーバに格納するデータ件数

1EADSサーバに格納するデータ件数を見積もる計算式を次に示します。

1EADSサーバに格納するデータ件数=

 1レンジ当たりのデータ件数×データの多重度

1レンジ当たりのデータ件数:

1レンジ当たりのデータ件数を見積もる計算式を次に示します。

データ総量監視機能を使用する場合は,見積もった値を共通設定のeads.cache.keyCountパラメタに指定してください。

1レンジ当たりのデータ件数=

 (1レンジ当たりのメモリキャッシュに格納するデータ件数

 +1レンジ当たりの2Wayキャッシュに格納するデータ件数

 +1レンジ当たりのディスクキャッシュに格納するデータ件数)

■1レンジ当たりのメモリキャッシュに格納するデータ件数:

1レンジ当たりのメモリキャッシュに格納するデータ件数を見積もる計算式を次に示します。

1レンジ当たりのメモリキャッシュに格納するデータ件数=

 クラスタのメモリキャッシュに格納するデータ件数

 ÷クラスタ内のEADSサーバの台数

 +データ総量監視機能用にメモリキャッシュのデータとして加算する件数

注※ データ自動削除機能を使用する場合は,「4.1.2(1)(d) データ自動削除機能を使用する場合のキャッシュに格納するデータ件数」を参照してください。

データ総量監視機能用にメモリキャッシュのデータとして加算する件数:

データ総量監視機能用にメモリキャッシュのデータとして加算する件数を見積もる計算式を次に示します。

データ総量監視機能を使用しない場合は,0を代入してください。

メモリキャッシュだけを使用する場合に,この件数を加算してください。2Wayキャッシュまたはディスクキャッシュを使用する場合は,0を代入してください。

データ総量監視機能用にメモリキャッシュのデータとして加算する件数=

 EADSサーバへの最大同時接続数×最大同時更新データ件数

EADSサーバへの最大同時接続数:

 サーバ定義のeads.server.maxConnectionsパラメタの指定値

最大同時更新データ件数:

 データの一括操作を実行する場合は,10を代入してください。一括操作を実行しない場合は,1を代入してください。

■1レンジ当たりの2Wayキャッシュに格納するデータ件数:

1レンジ当たりの2Wayキャッシュに格納するデータ件数を見積もる計算式を次に示します。

1レンジ当たりの2Wayキャッシュに格納するデータ件数=

 クラスタの2Wayキャッシュに格納するデータ件数

 ÷クラスタ内のEADSサーバの台数

 +データ総量監視機能用に2Wayキャッシュのデータとして加算する件数

データ総量監視機能用に2Wayキャッシュのデータとして加算する件数:

データ総量監視機能用に2Wayキャッシュのデータとして加算する件数を見積もる計算式を次に示します。

データ総量監視機能を使用しない場合は,0を代入してください。

2Wayキャッシュだけを使用する場合,またはメモリキャッシュ,ディスクキャッシュ,2Wayキャッシュを混在させて使用する場合に,この件数を加算してください。メモリキャッシュだけ,またはディスクキャッシュだけを使用する場合は,0を代入してください。

データ総量監視機能用に2Wayキャッシュのデータとして加算する件数=

 EADSサーバへの最大同時接続数×最大同時更新データ件数

EADSサーバへの最大同時接続数:

 サーバ定義のeads.server.maxConnectionsパラメタの指定値

最大同時更新データ件数:

 メモリキャッシュを使用して,データの一括操作を実行する場合は,10を代入してください。それ以外の場合は,1を代入してください。

■1レンジ当たりのディスクキャッシュに格納するデータ件数:

1レンジ当たりのディスクキャッシュに格納するデータ件数を見積もる計算式を次に示します。

1レンジ当たりのディスクキャッシュに格納するデータ件数=

 クラスタのディスクキャッシュに格納するデータ件数

 ÷クラスタ内のEADSサーバの台数

 +データ総量監視機能用にディスクキャッシュのデータとして加算する件数

注※ データ自動削除機能を使用する場合は,「4.1.2(1)(d) データ自動削除機能を使用する場合のキャッシュに格納するデータ件数」を参照してください。

データ総量監視機能用にディスクキャッシュのデータとして加算する件数:

データ総量監視機能用にディスクキャッシュのデータとして加算する件数を見積もる計算式を次に示します。

データ総量監視機能を使用しない場合は,0を代入してください。

ディスクキャッシュだけを使用する場合に,この件数を加算してください。メモリキャッシュまたは2Wayキャッシュを使用する場合は,0を代入してください。

データ総量監視機能用にディスクキャッシュのデータとして加算する件数=

 EADSサーバへの最大同時接続数×最大同時更新データ件数

EADSサーバへの最大同時接続数:

 サーバ定義のeads.server.maxConnectionsパラメタの指定値

最大同時更新データ件数:

 1を代入してください。

データの多重度:

共通設定のeads.replication.factorパラメタの指定値

(b) 更新操作の履歴の管理で使用するJavaヒープ領域

更新操作の履歴の管理で使用するJavaヒープ領域を見積もる計算式を次に示します。

更新操作の履歴の管理で使用するJavaヒープ領域(単位:バイト)=

 3,584×(更新操作の履歴が保持される最大数

 +合意処理で一度に合意できる処理の最大数)

 ×(データの多重度×2−1)×キャッシュ数

 +16×合意メッセージの送信キューの長さ×(EADSサーバ数−1)

注※

クラスタを停止させないで,EADSサーバをクラスタに追加する(スケールアウト処理を実行する)予定がある場合は,EADSサーバ数に,追加するEADSサーバの数を含めてください。追加するEADSサーバの数が予測できない場合は,EADSサーバ数に,96を代入してください。

更新操作の履歴が保持される最大数:

更新操作の履歴が保持される最大数を見積もる計算式を次に示します。

更新操作の履歴が保持される最大数=

 ((eads.failureDetector.heartbeat.timeoutパラメタの指定値

 +eads.failureDetector.connection.timeoutパラメタの指定値

 ×(eads.failureDetector.retryパラメタの指定値+1))÷1,000)

 ×1EADSサーバへのデータの更新操作のスループット(単位:件/秒)※1,※2

注※1

キャッシュごとにスループットが大きく異なる場合は,キャッシュごとに算出したスループットのうち,最大の値を代入してください。

注※2

データ自動削除機能を使用する場合,create,put,putAllで更新するデータ件数分のデータを削除するため,create,put,putAllでデータを更新する件数を倍にして1EADSサーバへのデータの更新操作のスループットを見積もってください。

合意処理で一度に合意できる処理の最大数:

共通設定のeads.replication.preparationsパラメタの指定値

データの多重度:

共通設定のeads.replication.factorパラメタの指定値

合意メッセージの送信キューの長さ:

サーバ定義のeads.replication.sendQueue.lengthパラメタの指定値

(c) 縮退処理・復旧処理・スケールアウト処理・リバランス処理で使用するJavaヒープ領域

縮退処理および復旧処理・スケールアウト処理・リバランス処理で使用するJavaヒープ領域の最大値をそれぞれ見積もり,どちらか大きい方の値を代入してください。

縮退処理で使用するJavaヒープ領域(単位:バイト)=

 (合意処理で一度に合意できる処理の最大数×2

 ×更新操作の履歴の最大サイズ(単位:バイト)

 ×(キャッシュ単位に行われる処理の最大同時実行スレッド数

 +キャッシュ数)+(データの多重度−1)×キャッシュ数

 ×更新操作の履歴の補完処理で送信するデータサイズ(単位:バイト))

 ×MIN(4×(データの多重度−1),EADSサーバ数−1)

復旧処理・スケールアウト処理・リバランス処理で使用するJavaヒープ領域(単位:バイト)=

 更新操作の履歴が格納される領域のサイズ(単位:メガバイト)×1,0242

 ÷(データの多重度×2−1)

 +復旧処理・スケールアウト処理・リバランス処理で送信するデータサイズ(単位:バイト)

注※

クラスタを停止させないで,EADSサーバをクラスタに追加する(スケールアウト処理を実行する)予定がある場合は,EADSサーバ数に,追加するEADSサーバの数を含めてください。追加するEADSサーバの数が予測できない場合は,EADSサーバ数に,96を代入してください。

合意処理で一度に合意できる処理の最大数:

共通設定のeads.replication.preparationsパラメタの指定値

更新操作の履歴の最大サイズ(単位:バイト):

更新操作の履歴の最大サイズを見積もる計算式を次に示します。

更新操作の履歴の最大サイズ(単位:バイト)=

 MAX(クラスタに格納できるkeyの最大サイズ+valueの最大サイズ×2,(クラスタに格納できるkeyの最大サイズ+valueの最大サイズ)×最大同時更新データ件数)

MAX:

計算結果の最も大きい値を選ぶことを示しています。

(例)MAX(2,10)の計算結果は10となります。

クラスタに格納できるkeyの最大サイズ:

共通設定のeads.cache.key.maxsizeパラメタの指定値

valueの最大サイズ:

put,create,update,replace実行時に指定するvalueの最大サイズ

最大同時更新データ件数:

メモリキャッシュを使用して,データの一括操作を実行する場合は10を代入してください。それ以外の場合は,1を代入してください。

キャッシュ単位に行われる処理の最大同時実行スレッド数:

データの多重度−1(データの多重度が1の場合は1)

データの多重度:

共通設定のeads.replication.factorパラメタの指定値

更新操作の履歴の補完処理で送信するデータサイズ(単位:バイト):

サーバ定義のeads.replication.fillgap.copy.datasizeパラメタの指定値

MIN:

計算結果の最も小さい値を選ぶことを示しています。

(例)MIN(3×6,4+7)の計算結果は11となります。

更新操作の履歴が格納される領域のサイズ:

共通設定のeads.replication.external.heapsizeパラメタの指定値

見積もりについては,「4.1.3(2) 更新操作の履歴が格納される領域のサイズ」を参照してください。

復旧処理・スケールアウト処理・リバランス処理で送信するデータサイズ:

復旧処理・スケールアウト処理・リバランス処理で送信するデータサイズをキャッシュごとに見積もり,その中で最大の値を代入してください。

メモリキャッシュの場合

サーバ定義のeads.transfer.datasizeパラメタの指定値(復旧処理・スケールアウト処理)またはサーバ定義のeads.rebalance.transfer.datasizeパラメタの指定値(リバランス処理)

ディスクキャッシュ,および2Wayキャッシュの場合

キャッシュ定義のeads.cache.disk.transfer.datasizeパラメタの指定値

(d) データ自動削除機能を使用する場合のキャッシュに格納するデータ件数

データ自動削除機能を使用する場合,次の計算式を求める必要があります。

  • クラスタのメモリキャッシュに格納するデータ件数(データ自動削除機能の使用時)

  • クラスタのディスクキャッシュに格納するデータ件数(データ自動削除機能の使用時)

求めた値を,「4.1.2(1)(a) 1EADSサーバに格納するデータ件数」にある次の変数に代入してください。

■代入する変数
  • クラスタのメモリキャッシュに格納するデータ件数

  • クラスタのディスクキャッシュに格納するデータ件数

データ自動削除機能を使用する場合に求める計算式を次に示します。

クラスタのメモリキャッシュに格納するデータ件数(データ自動削除機能の使用時):

クラスタのメモリキャッシュに格納するデータ件数(データ自動削除機能の使用時)を見積もる計算式を次に示します。

クラスタのメモリキャッシュに格納するデータ件数(データ自動削除機能の使用時)=

 各メモリキャッシュに格納するデータ件数の総数

各メモリキャッシュに格納するデータ件数の総数:

各メモリキャッシュに格納するデータ件数をすべて合計した値を代入します。

各メモリキャッシュに格納するデータ件数:

各メモリキャッシュに格納するデータ件数を見積もる計算式を次に示します。メモリキャッシュごとに見積もる必要があります。

各メモリキャッシュに格納するデータ件数=

 (各メモリキャッシュの1レンジ当たりに格納するデータ件数+1)

 ×クラスタ内のEADSサーバの台数

各メモリキャッシュの1レンジ当たりに格納するデータ件数:

データ自動削除機能のデータ削除のしきい値で使用する1レンジ当たりのデータ件数(eads.cache.eviction.keyCountパラメタの指定値)を代入してください。もし,各メモリキャッシュに格納するデータ件数を決めてから,各メモリキャッシュの1レンジ当たりに格納するデータ件数を決める場合は,逆算してください。

クラスタのディスクキャッシュに格納するデータ件数(データ自動削除機能の使用時):

クラスタのディスクキャッシュに格納するデータ件数(データ自動削除機能の使用時)を見積もる計算式を次に示します。

クラスタのディスクキャッシュに格納するデータ件数(データ自動削除機能の使用時)=

 各ディスクキャッシュに格納するデータ件数の総数

各ディスクキャッシュに格納するデータ件数の総数:

各ディスクキャッシュに格納するデータ件数をすべて合計した値を代入します。

各ディスクキャッシュに格納するデータ件数:

各ディスクキャッシュに格納するデータ件数を見積もる計算式を次に示します。ディスクキャッシュごとに見積もる必要があります。

各ディスクキャッシュに格納するデータ件数=

 (各ディスクキャッシュの1レンジ当たりに格納するデータ件数+1)

 ×クラスタ内のEADSサーバの台数

各ディスクキャッシュの1レンジ当たりに格納するデータ件数:

データ自動削除機能のデータ削除のしきい値で使用する1レンジ当たりのデータ件数(eads.cache.eviction.keyCountパラメタの指定値)を代入してください。もし,各ディスクキャッシュに格納するデータ件数を決めてから,各ディスクキャッシュの1レンジ当たりに格納するデータ件数を決める場合は,逆算してください。

(2) ディスク上のキャッシュが使用するJavaヒープサイズを見積もる

ディスクキャッシュ,および2Wayキャッシュを使用する場合は,各キャッシュが使用するJavaヒープサイズを求めます。

ディスクキャッシュ,および2Wayキャッシュ1つ当たりのJavaヒープサイズを見積もる計算式を次に示します。この計算式でキャッシュごとに見積もったあと,算出した値を合計します。その値を「4.1.2(1) 1EADSサーバ当たりのJavaヒープサイズを見積もる」で見積もったJavaヒープサイズに加算します。

さらに,eads.cache.disk.highSpecDrive.enableパラメタにtrueを指定する場合は,次に示す計算式で,キャッシュごとにJavaヒープサイズに加算する値を見積もります。そのあとで算出した値を合計して,上述の計算式で求めたJavaヒープサイズに加算します。

ディスクキャッシュ,および2Wayキャッシュ1つ当たりのJavaヒープサイズの見積もり値に加算する値を見積もる計算式を次に示します。

Javaヒープサイズの見積もり値に加算する値(単位:メガバイト)=

 384×データの多重度÷1,024