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