クライアントからのリクエストは Application Server で処理されます。
1 つの CPU コアの性能が高いほど、各リクエストをより高速に処理できます。
ただし、通常は多数の異なるクライアントが同時にリクエストを送信するため、Application Server はそれらをキューに入れて処理する必要があります。受信したリクエストを並行して処理できるようにするには、通常想定されるクライアント数に対して最適な CPU コア数を見極める必要があります。
システムには、3 種類のクライアントがあります。
- 自動ステーション
- スキャンオペレーター
- 検証オペレーター
以下では、各クライアントの種類について詳しく説明します。
自動ステーションを処理するために Application Server に必要な CPU コア数を見積もるテストを実施しました。
Application Server と Processing Stations で使用する CPU コアの種類が異なる 2 つのインストール構成でテストを行いました。
| Application Server | Processing Stations |
|---|
| インストール 1 | Intel Xeon® Platinum 8168 (SkyLake) 2.7 GHz | Intel Xeon® Platinum 8168 (SkyLake) 2.7 GHz |
| インストール 2 | Intel Xeon® E5-2680 v4 2.4 GHz | Intel Xeon® E5-2680 v4 2.4 GHz |
テストの結果、ボトルネックがない場合、処理コア 100 個で Application Server の 6 コアがフルにロードされることがわかりました。
Application Server の CPU 使用率が 80% になると、Application Server 自体がボトルネックになります。そのため、処理コア 100 個のインストール構成では、Application Server に 8 コアを用意することを推奨します。
Application Server の観点では、検証オペレーターから送られるリクエストは、処理コアから送信されるリクエストとそれほど大きくは変わりません。
ただし、人間のオペレーターは CPU よりも低速であるため、同じ時間内に送信するリクエスト数は処理コアより少なくなります。
実用上は、発生する負荷という観点で、処理コア 1 つは検証オペレーター 5 人分におおよそ相当すると考えられます。
例。
Application Server にアクセスする検証オペレーター 100 人に必要なコア数を見積もってみましょう。
Processing Station の 1 コアは、検証オペレーター 5 人分と同程度の負荷を発生させます。
したがって、検証オペレーター 100 人は処理コア 20 個に相当します。
上記のテスト結果を考慮すると、Application Server の 1 コアで Processing Station の 10 コアからのリクエストを処理できると想定されます。
したがって、検証オペレーター 100 人からのリクエストを処理するには、Application Server のコアが 2 つ必要です。
検証オペレーターが 100 人超、スキャンオペレーターが 50 人超の高負荷プロジェクトでは、複数の Application Server またはクラスター構成の利用を推奨します。これにより、システムの応答性が向上し、オペレーターのユーザー体験も改善されます。
Application Server の観点から見ると、スキャンオペレーターから届くリクエストも、処理コアから送信されるリクエストとそれほど大きくは変わりません。
ただし、スキャンオペレーターからのリクエストは、データをサーバーにアップロードするだけなので、一方向です。
検証オペレーターと同様に、スキャンオペレーターが発生させる負荷は、処理コアよりも小さくなります。
実際には、発生する負荷の観点では、処理コア 1 つはおよそスキャンオペレーター 10 人分に相当すると考えて差し支えありません。