第8章 Event-Driven Ansible Controller のパフォーマンスチューニング
Event-Driven Ansible は、非常にスケーラブルで柔軟な自動化機能です。Event-Driven Ansible Controller は、Event-Driven Ansible による自動化を実行するインターフェイスを提供します。Event-Driven Ansible Controller をチューニングし、次の方法でパフォーマンスとスケーラビリティーを最適化します。
- ワークロードの特徴付け
- システムレベルの監視
- パフォーマンスのトラブルシューティング
8.1. ワークロードの特徴付け リンクのコピーリンクがクリップボードにコピーされました!
Event-Driven Ansible Controller では、ワークロードに、受信したルールブックアクティベーションとイベントの数が含まれます。Event-Driven Ansible Controller ワークロードを特徴付けるために、次の要素を考慮してください。
- ルールブックの同時アクティベーションの数
- Event-Driven Ansible Controller が受信したイベントの数
8.1.1. ルールブックの同時アクティベーションの数の変更 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、Event-Driven Ansible Controller は 12 のルールブックアクティベーションを同時に実行できます。12 を超えるルールブックアクティベーションが作成されると、ルールブックアクティベーションワーカーが利用可能になるまで、後続のルールブックアクティベーションが保留中として待機することが予想されます。この場合、Event-Driven Ansible Controller インスタンスに空きメモリーと CPU が十分にある場合でも、ルールブックアクティベーションのステータスは “pending” と表示されます。この動作を変更するには、実行中のルールブックアクティベーションのデフォルトの最大数を変更する必要があります。
注記: EDA_MAX_RUNNING_ACTIVATIONS の値は、インスタンスサイズが変更されても変更されないため、手動で調整する必要があります。
8.1.1.1. Event-Driven Ansible Controller のインストール時に、ルールブックの同時アクティベーションの数を変更する リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、Event-Driven Ansible Controller は 12 つのアクティベーションを同時に実行できます。以下の手順を使用して、インストール時にこのデフォルト値を変更できます。
手順
仮想マシンインストーラーに変数を指定します。
- セットアップインベントリーファイルに移動します。
-
[all:vars] セクションに
automationedacontroller_max_running_activationsを追加します。たとえば、automationedacontroller_max_running_activations=16などです。 - セットアップを実行します。
8.1.1.2. Event-Driven Ansible Controller のインストール後に、ルールブックの同時アクティベーションの数を変更する リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、Event-Driven Ansible Controller は 12 つのアクティベーションを同時に実行できます。以下の手順を使用して、インストール後にこのデフォルト値を変更できます。
手順
-
/etc/ansible-automation-platform/edaの環境ファイルに移動します。 -
必要な実行中のアクティベーションの最大数を選択します。たとえば、
EDA_MAX_RUNNING_ACTIVATIONS = 16などです。 -
systemctl restart automation-eda-controller.targetコマンドを使用して、EDA サービスを再起動します。
関連情報
ルールブックアクティベーションの詳細は、ルールブックアクティベーション を参照してください。
8.1.2. ルールブックアクティベーションごとのデフォルトのメモリー制限の変更 リンクのコピーリンクがクリップボードにコピーされました!
メモリー使用量は、Event-Driven Ansible Controller が処理する必要のあるイベントの数に基づいています。各ルールブックアクティベーションコンテナーには、200MB のメモリー制限があります。たとえば、CPU が 4 個、RAM が 16 GB の場合、割り当てられたメモリー制限が 200 MB のルールブックアクティベーションコンテナー 1 つでは、1 分あたり 150,000 件を超えるイベントを処理できません。並行して実行されるルールブックアクティベーションの数が多い場合は、各ルールブックアクティベーションが処理できるイベントの最大数は少なくなります。非常に高いレートでの受信イベントが多すぎる場合、コンテナーはイベントを処理しようとしてメモリー不足になる可能性があります。これによりコンテナーが強制終了され、ルールブックアクティベーションはステータスコード 137 で失敗します。
この障害に対処するには、次のいずれかの手順を使用して、ルールブックアクティベーションに割り当てられるメモリーの量を増やし、多数のイベントを高いレートで処理できるようにします。
- インストール中に、ルールブックアクティベーションごとにデフォルトのメモリー制限を変更する
- インストール後に、ルールブックアクティベーションごとにデフォルトのメモリー制限を変更する
8.1.2.1. インストール中に、ルールブックアクティベーションごとにデフォルトのメモリー制限を変更する リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、ルールブックアクティベーションコンテナーごとに 200MB のメモリー制限があります。以下の手順を使用して、インストール時にこのデフォルト値を変更できます。
手順
- セットアップインベントリーファイルに移動します。
-
[all:vars] セクションに
automationedacontroller_podman_mem_limitを追加します。たとえば、automationedacontroller_podman_mem_limit='400m'などです。 - セットアップを実行します。
8.1.2.2. インストール後に、ルールブックアクティベーションごとにデフォルトのメモリー制限を変更する リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、ルールブックアクティベーションコンテナーごとに 200MB のメモリー制限があります。以下の手順を使用して、インストール後にこのデフォルト値を変更できます。
手順
-
/etc/ansible-automation-platform/edaの環境ファイルに移動します。 -
デフォルトのコンテナーのメモリー制限を変更します。たとえば、
EDA_PODMAN_MEM_LIMIT = '300m'などです。 -
systemctl restart automation-eda-controller.targetを使用して、Event-Driven Ansible Controller サービスを再起動します。