大規模なアセットリクエストによるスレッドの枯渇に起因するAEMの本番稼動の停止を解決する

この記事では、リクエスト処理スレッドを使い果たし、サービスを中断する可能性のある、大規模なビデオアセットに対する過剰な同時リクエストに起因するAdobe Experience Manager(AEM)の本番稼動停止を解決する方法について説明します。

説明 description

環境

Adobe Experience Manager(すべてのバージョン)

問題/症状

AEMの本番環境では、多数の同時使用ユーザーに大規模なビデオアセットを提供すると、アセットがDispatcher レイヤーにキャッシュされない場合、スレッドが枯渇する可能性があります。 キャッシュフラッシュによって、異常または大量のトラフィックが保持されている間に大きなアセットがキャッシュから削除された場合、アセットに対するすべてのリクエストはAEM パブリッシュに転送されます。 これにより、利用可能なすべてのリクエスト処理スレッドを素早く使用できるようになり、サービスが低下したり、完全に停止したりします。

  • すべてのユーザーが実稼動環境(オーサー、パブリッシュ、またはドメイン)にアクセスできません。
  • サービスの低下は、Dispatcher キャッシュのフラッシュ後に発生します。
  • AEM パブリッシュでスレッドの使用率が高くなる。

原因

キャッシュフラッシュは、異常または大量のトラフィックが保持されている間、Dispatcher キャッシュから大きなビデオアセットを削除しました。 これにより、アセットに対するすべてのリクエストがAEM パブリッシュに転送され、リクエスト処理スレッドが使い果たされ、本番環境が停止しました。

解決策 resolution

問題を解決するには、次の手順に従います。

  1. 影響を受ける大きなビデオアセットをAEM オーサーから取得し、Apache/Dispatcher レイヤーで手動でキャッシュします。
  2. Dispatcherのキャッシュ済みアセットに不変フラグを適用して、後続のキャッシュフラッシュ操作によってアセットが削除されないようにします。 不変キャッシュルールの設定について詳しくは、Dispatcher設定を参照してください。
  3. ビデオアセットのリクエストがApache/Dispatcherによって配信され、AEM パブリッシュに転送されないことを確認するには、環境を監視します。 Dispatcherのログで、アセットに関連するキャッシュのヒットとミスを確認します。
  4. 問題を引き起こした異常なリクエストパターンの原因と性質を調査します。 最近のトラフィックパターン、アプリケーションログ、最近の変更を確認して、リクエスト量が多い原因を特定します。
  5. アプリケーションのビデオ配信、HTTP範囲リクエスト、キャッシュ動作を検証して、最適なパフォーマンスを確保し、繰り返しを防ぎます。
  6. アセットがキャッシュから提供され、スレッドの使用状況が正規化されていることを確認したら、実稼動環境が安定しており、すべてのユーザーがアクセスできることを確認します。

関連トピックス

recommendation-more-help
experience-cloud-kcs-help-kbarticles