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