3.4. Automation Controller API サービスのスケーリングに関する考慮事項
Automation Controller API サービスは、Automation Controller でのユーザーロール、プロジェクトの作成、インベントリーの作成または更新、ジョブの起動、ジョブ結果のチェックに関する情報を含む、アプリケーションへの HTTP 要求を処理します。
3.4.1. 主要パフォーマンス指標 リンクのコピーリンクがクリップボードにコピーされました!
Automation Controller API サービスの主要なパフォーマンス指標は次のとおりです。
-
/api/controllerでのリクエストの API レイテンシーが高い - API Pod またはノードでの CPU 使用率が高い
-
サービスがビジー状態でヘルスチェックに応答できないため、プラットフォームゲートウェイが
503エラーを返す
Automation Controller API サービスは、operator ベースのインストールでは Web Pod に、仮想マシンベースのインストールまたはコンテナーベースのインストールではコントロールノードまたはハイブリッドノードに配置されます。
3.4.2. デプロイメントタイプ別のスケーリングストラテジー リンクのコピーリンクがクリップボードにコピーされました!
Automation Controller API サービスを拡張するには、次のストラテジーを検討してください。
-
OpenShift Container Platform:
AutomationControllerCR のweb_replicas属性を調整します。replicas属性をスケーリングすると、タスクレプリカと Web レプリカがスケーリングされます。 - 仮想マシンベースのインストールとコンテナーベースのインストール: 制御ノードまたはハイブリッドノードをスケールし、追加の自動化ジョブを制御する機能を向上させます。
3.4.3. データベース接続とアーキテクチャーの考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform では、各 Web レプリカは、WSGI Web サービスワーカーと、タスク通信および WebSocket を容易にするさまざまなバックグラウンドサービス用のデータベース接続を消費します。仮想マシンベースのインストールおよびコンテナーベースのインストールで WSGI Web サーバーによって使用されるデータベース接続の数は、マシンの CPU 数に応じて変化します。さらに、制御ノードとハイブリッドノードは、Dispatcher (タスクシステム) と Callback Receiver (ジョブイベント処理ワーカープール) を管理します。これらのワーカープールは CPU の可用性に応じて拡張され、データベース接続が必要になります。
追加のコントロールノードをプロビジョニングするには、OpenShift Container Platform 上の Web デプロイメントを単純にスケールアウトするよりも多くのデータベース接続が必要になります。これが必要な理由は、コンテナー化および RPM コントロールノードのスケーリングによって、OpenShift Container Platform 上の別個のデプロイメントとして動作するタスクシステムも拡張されるためです。OpenShift Container Platform デプロイメントでサービスを分離する点が重要な違いで、管理者がデプロイメントをより細かく調整し、データベース接続など、限りのあるリソースを節約できるようにします。
3.4.4. OpenShift Container Platform でのスケーリングに関する特別な考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
100 件を超えるリクエストがバックログされると、これらのリクエストは uWSGI によってドロップされるため、OpenShift Container Platform でサービスが水平に必要な分、スケーリングされることが特に重要です。その結果、クライアントではドロップされたリクエストに対してタイムアウトが発生します。次のログテキストには、このイベントに対応するエラーが示されています。
*** uWSGI listen queue of socket ":8000" (fd: 3) full !!! (101/100) ***
*** uWSGI listen queue of socket ":8000" (fd: 3) full !!! (101/100) ***
このエラーは、uWSGI のバックログの長さがカーネルパラメーター somaxconn に紐づき、制約されていることが原因で発生します。OpenShift Container Platform でこのカーネルパラメーターを上げることは可能ですが、そのためには “unsafe sysctls” を許可する必要があります。