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サーバへの最大同時接続数+GCスレッド数+90}÷0.8※2
- ■ノンブロッキングI/O通信制御を使用する場合
-
1EADSサーバプロセス当たりのスレッド数(ノンブロッキングI/O通信制御を使用する場合)=
{キャッシュ数×(データの多重度×2−1)×2+EADSサーバ数※1×6
+キャッシュ単位に行われる処理の最大同時実行スレッド数
+キャッシュ数×3
+リクエスト処理スレッド数+セレクタスレッド数+GCスレッド数+90}÷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サーバの処理性能が改善することがあります。
- GCスレッド数:
-
GCスレッド数を見積もる計算式を次に示します。
GCスレッド数=
STWフェーズで使用されるGCスレッド数+コンカレントフェーズで使用されるGCスレッド数
- STWフェーズで使用されるGCスレッド数:
-
共通定義のeads.java.zgc.parallelGCThreadsパラメタの指定値
指定していない場合はJavaVMのデフォルト値(実行環境の論理CPU数の60%(小数点以下の値は切り上げ))が代入されます。
- コンカレントフェーズで使用されるGCスレッド数:
-
共通定義のeads.java.zgc.concGCThreadsパラメタの指定値
指定していない場合はJavaVMのデフォルト値(実行環境の論理CPU数の25%(小数点以下の値は切り上げ))が代入されます。
eztool importコマンド,eztool importecfコマンド,またはeztool resumeコマンド実行時にEADSサーバが使用するスレッド数を見積もる計算式を次に示します。
これらのコマンドを実行する場合は,上記の1EADSサーバプロセス当たりのスレッド数(ノンブロッキングI/O通信制御を使用しない場合),または1EADSサーバプロセス当たりのスレッド数(ノンブロッキングI/O通信制御を使用する場合)の値に,次の計算式で見積もった値を加算してください。なお,eztool importコマンド,eztool importecfコマンド,およびeztool resumeコマンドは同時実行されないため,運用の中でそれぞれを実行する場合でも見積もりが増加することはありません。
eztool importコマンド,eztool importecfコマンド,eztool resumeコマンド実行時のスレッド数= {1+最大インポート実行スレッド数 +MAX((EADSサーバ数−1),最大インポート実行スレッド数×(データの多重度−1)) }÷0.8※ |
- 注※
-
小数点以下の値は切り上げてください。
- MAX:
-
計算結果の最も大きい値を選ぶことを示しています。
(例)MAX(2,10)の計算結果は10となります。
- 最大インポート実行スレッド数:
-
最大インポート実行スレッド数を見積もる計算式を次に示します。
-
--threadsオプションを指定したeztool importコマンドを実行しない場合
最大インポート実行スレッド数=0
-
--threadsオプションを指定したeztool importコマンドを実行する場合
最大インポート実行スレッド数=--threadsオプションに指定するインポート実行スレッド数。指定する値が実行ごとに異なる場合は,その中で最も大きい値。
- データの多重度:
-
共通設定のeads.replication.factorパラメタの指定値
-
(2) 1コマンドプロセス当たりのスレッド数
1コマンドプロセス当たりのスレッド数を見積もる計算式を次に示します。
1コマンドプロセス当たりのスレッド数=EADSサーバプロセス数×2+62 |