4.3.1 スレッド数を見積もる
(1) 1EADSサーバプロセス当たりのスレッド数
1EADSサーバプロセス当たりのスレッド数を見積もる計算式を次に示します。
-
ノンブロッキングI/O通信制御を使用しない場合は,ノンブロッキングI/O通信制御を使用しない場合の計算式で見積もってください。
-
ノンブロッキングI/O通信制御を使用する場合は,ノンブロッキングI/O通信制御を使用する場合の計算式で見積もってください。
- ■ノンブロッキング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 |