Hitachi

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


4.3.1 スレッド数を見積もる

〈この項の構成〉

(1) 1EADSサーバプロセス当たりのスレッド数

1EADSサーバプロセス当たりのスレッド数を見積もる計算式を次に示します。

■ノンブロッキングI/O通信制御を使用しない場合

1EADSサーバプロセス当たりのスレッド数(ノンブロッキングI/O通信制御を使用しない場合)=

 {キャッシュ数×(データの多重度×2−1)×2+EADSサーバ数※1×6

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

 +キャッシュ数×3

 +EADSサーバへの最大同時接続数+73}÷0.8※2

■ノンブロッキングI/O通信制御を使用する場合

1EADSサーバプロセス当たりのスレッド数(ノンブロッキングI/O通信制御を使用する場合)=

 {キャッシュ数×(データの多重度×2−1)×2+EADSサーバ数※1×6

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

 +キャッシュ数×3

 +リクエスト処理スレッド数+セレクタスレッド数+73}÷0.8※2

注※1

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

注※2

小数点以下の値は切り上げてください。

データの多重度:

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

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

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

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

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

リクエスト処理スレッド数:

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

リクエスト処理スレッド数を見積もる計算式を次に示します。なお,この見積もりによる計算値は,決定値ではなくチューニングの際の参考値であるため,実際の環境や性能に応じて変更が必要な可能性があります。また,リクエスト処理スレッド数は「同時に実行されるキャッシュ操作およびファンクション操作リクエスト数の最大値」まで増やすと,EADSサーバの処理性能が改善することがあります。

リクエスト処理スレッド数=

 MAX(1EADSサーバに対して割り当て可能な論理コア数−セレクタスレッド数−1, 1)

MAX:

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

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

セレクタスレッド数:

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

セレクタスレッド数には1を指定することを推奨します。なお,1EADSサーバに対して割り当て可能な論理コア数が多い場合には,指定値を大きくすると,EADSサーバの処理性能が改善することがあります。

(2) 1コマンドプロセス当たりのスレッド数

1コマンドプロセス当たりのスレッド数を見積もる計算式を次に示します。

1コマンドプロセス当たりのスレッド数=EADSサーバプロセス数×2+50