3.2. 容量プランニングの演習例
サポートするワークロード容量を決定したら、ワークロードの要件に基づいてデプロイメントを計画する必要があります。デプロイメントに役立つように、次のプランニング演習を確認してください。
この例では、クラスターは次の容量をサポートする必要があります。
- 300 台の管理対象ホスト
- ホストごとに 1 時間あたり 1,000 タスク、またはホストごとに 1 分あたり 16 タスク
- 10 個の同時ジョブ
- Playbook でフォークが 5 に設定されている。これはデフォルトになります。
- 1 MB の平均イベントサイズ
仮想マシンには、4 つの CPU と 16 GB の RAM、および 3000 IOP のディスクが搭載されています。
3.2.1. ワークロード要件の例
この容量プランニングの演習例では、次のワークロード要件を使用します。
実行容量
10 個の同時実行ジョブを実行するには、少なくとも 60 単位の実行容量が必要です。
- これは、(10 個のジョブ * 5 つのフォーク) + (10 個のジョブ * ジョブの 1 基本タスクインパクト) = 60 実行容量という式を使用して計算します。
制御容量
- 10 個の同時実行ジョブを制御するには、少なくとも 10 ユニットの制御容量が必要です。
300 台の管理対象ホストで、ホストごとに 1 時間あたり 1,000 個のタスクをサポートするために必要な 1 時間あたりのイベント数を計算するには、次の式を使用します。
- 1 時間あたり 1000 個のタスク * 300 台の管理対象ホスト = 1 時間あたり少なくとも 300,000 個のイベント
- ジョブが生成するイベントの数を正確に確認するには、ジョブを実行する必要があります。これは、イベントの数が特定のタスクと詳細度に依存するためです。たとえば、“Hello World” を出力するデバッグタスクは、1 つのホストで詳細度 1 のジョブイベントを 6 つ生成します。詳細度を 3 にすると、1 つのホストで 34 個のジョブイベントを生成します。したがって、タスクは少なくとも 6 つのイベントを生成すると推定する必要があります。これにより、1 時間あたり 3,000,000 個近くのイベント、つまり 1 秒あたり約 833 個のイベントが生成されることになります。
必要な実行ノードとコントロールノードの数の決定
必要な実行ノードとコントロールノードの数を決定するには、次の表に示す実験結果を参照してください。この表は、1 つのコントロールノードに対して同サイズの実行ノードが 5 つある場合に確認されたイベント処理速度を示しています (API 容量の列)。ジョブテンプレートのデフォルトの “フォーク” 設定は 5 です。そのため、このデフォルト値を使用すると制御容量と実行容量の比率が前述の 1:5 になり、ディスパッチ可能な最大数のジョブをコントロールノードが実行ノードにディスパッチした場合に、CPU/RAM が等しい 5 つの実行ノードが容量を 100% 使用することになります。
ノード | API 容量 | デフォルトの実行容量 | デフォルトの制御容量 | 容量使用率 100% での平均イベント処理速度 | 容量使用率 50% での平均イベント処理速度 | 容量使用率 40% での平均イベント処理速度 |
---|---|---|---|---|---|---|
2.5 Ghz の 4 CPU、16 GB RAM コントロールノード、最大 3000 IOP のディスク | 1 秒あたり約 10 リクエスト | 該当なし | 137 ジョブ | 1 秒あたり 1100 | 1 秒あたり 1400 | 1 秒あたり 1630 |
2.5 Ghz の 4 CPU、16 GB RAM 実行ノード、最大 3000 IOP のディスク | 該当なし | 137 | 該当なし | 該当なし | 該当なし | 該当なし |
2.5 Ghz の 4 CPU、16 GB RAM データベースノード、最大 3000 IOP のディスク | 該当なし | 該当なし | 該当なし | 該当なし | 該当なし | 該当なし |
ジョブの制御はコントロールノード上のジョブイベント処理と競合するため、制御容量をオーバープロビジョニングすると処理時間が短縮される可能性があります。処理時間が長い場合、ジョブの実行から API または UI で出力を表示できるようになるまでに遅延が発生する可能性があります。
この例において、300 台の管理対象ホストのワークロードがあり、ホストごとに 1 時間あたり 1000 個のタスクを実行し、Playbook でフォークを 5 に設定した 10 個の同時実行ジョブがあり、平均イベントサイズが 1 MB の場合、次の手順を使用します。
- 4 つの 2.5Ghz の CPU、16 GB の RAM、および約 3000 IOP のディスクを備えた 1 つの実行ノード、1 つのコントロールノード、1 つのデータベースノードをデプロイします。
- ジョブテンプレートで、フォーク設定をデフォルトの 5 に維持します。
- コントロールノードの UI のインスタンスビューで容量変更機能を使用して、容量を最低値を 16 まで減らし、イベント処理用に確保するコントロールノードの容量を増やします。
関連情報
- 高レベルの API インタラクションを伴うワークロードの詳細は、Scaling Automation Controller for API Driven Workloads を参照してください。
- インスタンスによる容量の管理に関する詳細は、インスタンスによる容量の管理 を参照してください。
- Operator ベースのデプロイメントの詳細は、Operator 環境に関する Red Hat Ansible Automation Platform の考慮事項 を参照してください。