AEM 6.5:Dynamic Media エンコードビデオワークフローで、ビデオの並行アップロード中にCPUがスパイクする
この記事では、Adobe Experience Manager 6.5でビデオを並行してアップロードする際に、Dynamic Media エンコードビデオワークフローによって発生するCPUのスパイクを解決する方法について説明します。
説明 description
環境
Adobe Experience Manager(AEM) 6.5 SP24 (すべてのプラットフォーム)
問題/症状
複数のビデオアセット(例:各10~80 MBの15~20本のビデオ)をProduction Author サーバーに同時にアップロードすると、Dynamic Media Encode Videoのワークフロートリガーが並行してFFmpeg トランスコーディングプロセスを実行し、CPUが大幅にスパイクします。 サーバーが応答しなくなり、再起動が必要になります。 同様の動作は、各30 MBの5つのビデオをアップロードする場合に、下位の環境で発生します。
症状:
- ビデオアセットのアップロード時にオーサーサーバーでCPUの使用率が高い
- オーサーインスタンスが応答しなくなり、再起動する必要があります
- 問題が解決されるまで、ビジネスユーザーはビデオアセットをアップロードできません。
エラーログに、サーバーの停止前にFFmpeg トランスコーディング手順がアクティブであることが示されます。
原因
Dynamic Media エンコードビデオワークフローによってトリガーされた並列FFmpeg処理は、キューのトピックが正しく設定されていなかったため(先頭のスラッシュ)、スロットリングされませんでした。
トピックを修正し、専用のキューを使用すると、同時実行を制御して、CPUのスパイクを防ぐことができます。
解決策 resolution
問題を解決するには、次の手順に従います。
-
ワークフロー設定の確認:
- ビデオ エンコーディングに使用されるワークフローモデルを特定します(例:
Dynamic Media Encode Video)。 - テストビデオをアップロードし、トピックの
/system/console/slingeventを確認して、ワークフロートピックを確認します(例:com/adobe/granite/workflow/job/var/workflow/models/nhbvideoencode)。
- ビデオ エンコーディングに使用されるワークフローモデルを特定します(例:
-
専用のSling ジョブキューを設定:
-
ワークフロートピック用のカスタム Sling ジョブキューを作成します。
-
キューのトピックが
/system/console/slingeventに表示されているトピックと正確に一致すること(先頭スラッシュなし)を確認します。 -
例:
- 正解:
com/adobe/granite/workflow/job/var/workflow/models/nhbvideoencode - 不正確:
/com/adobe/granite/workflow/job/var/workflow/models/nhbvideoencode
- 正解:
-
-
キューのランキングと同時実行の設定:
- カスタムキュー(例:1000)に、デフォルトのワークフローキューよりも高いランクを割り当てます。
- FFmpeg処理をスロットルする同時実行設定を行います(例:
maxConcurrentJobsを設定して同時実行を制限します)。
-
構成の検証:
- ワークフローのステータスをリセットして、ワークフローを再実行します。
- ジョブが専用キューを通じてルーティングされ、CPUの使用率が並行アップロード中も安定していることを確認します。
-
下位環境でのテスト:
- 複数の動画を同時にアップロードし、CPUの使用状況を監視できます。
- 成功した場合は、設定を実稼動環境に適用します。