次の図は、パフォーマンスの問題をトラブルシューティングするために実行する必要がある手順に関するガイダンスを提供することを目的としています。 読みやすくするために、5 つのセクションに分かれています。
図の各手順は、ドキュメントリソースまたは推奨事項にリンクされています。
パフォーマンスの問題が特定のページ (AEMコンソールまたは Web ページ ) で発生し、一貫して再現できると仮定しています。 パフォーマンスをテストまたは監視する方法を持つことは、調査を開始する前に前提条件です。
分析は手順 0 で開始します。 目的は、パフォーマンスの問題の原因であるエンティティ(Dispatcher、外部ホストまたは AEM)を特定し、調査する必要がある領域(サーバーまたはネットワーク)を判別することです。
手順 | タイトル | リソース |
手順 0 | リクエストフローの分析 | ブラウザーで標準的な HTTP リクエスト分析を使用して、リクエストフローを分析できます。 Chrome でこれをおこなう方法について詳しくは、次を参照してください。 https://developers.google.com/web/tools/chrome-devtools/profile/network-performance/resource-loading |
手順 2 | リクエストは外部ホストから送信されますか? | ブラウザーで標準的な HTTP リクエスト分析を使用して、リクエストフローを分析できます。 Chrome でこれをおこなう方法に関する上記のリンクを参照してください。 |
手順 3 | 要求をキャッシュできますか? | キャッシュ可能なリクエストと一般的な Dispatcher のパフォーマンス最適化に関するアドバイスについて詳しくは、 Dispatcher のパフォーマンス最適化. |
手順 4 | 要求の送信元は Dispatcher ですか。 | Dispatcher のデバッグドキュメントを確認して、要求が正しくキャッシュされているか確認してください。 |
手順 5 | Dispatcher は AEM を使用して各要求を認証しようとしていますか。 | Dispatcher が、キャッシュされたリソースを配信する前に、認証のために HEAD 要求を AEM に送信しているかどうか確認します。これを行うには、AEM の HEAD で access.log 要求を確認します。詳しくは、ログを参照してください。 |
手順 6 | Dispatcher の地理的な位置はユーザーから遠いですか? | Dispatcher をユーザーの近くに移動します。 |
手順 7 | Dispatcher のネットワークレイヤーに問題はありませんか。 | ネットワークレイヤーで、輻輳や遅延の問題がないかどうかを調べます。
|
手順 8 | ローカルインスタンスでは、遅さは再現可能ですか? | 用途 Tough Day 本番インスタンスから「実世界」の条件をレプリケートする場合。 開発の場所でこれが現実的でない場合は、異なるネットワークコンテキストで実稼動インスタンス(または同一のステージングインスタンス)をテストしてください。 |
手順 9 | サーバーの地理的な位置はユーザーから遠いですか? | サーバーをユーザーに近づけます。 |
手順 10 および 29 | ネットワーク層の調査 | ネットワークレイヤーで、輻輳や遅延の問題がないかどうかを調べます。 オーサー層では、待ち時間が 100 ミリ秒を超えないことをお勧めします。 パフォーマンスの最適化に関するヒントについて詳しくは、このページを参照してください。 |
手順 11 | サーバーを近い場所に移動するか、地域ごとに 1 つ追加します | |
手順 12 | AEM server のトラブルシューティング | 詳しくは、図の次のサブ手順を参照してください。 |
手順 13 | ハードウェア要件の確認 | に関するドキュメントを確認してください。 ハードウェアのサイズ設定のガイドライン. |
手順 14 | パフォーマンスの問題のよくある原因を確認します | |
手順 15 | 処理に時間のかかる要求を見つけます |
rlog.jar の使用方法の詳細については、このページを参照してください。 詳しくは、 rlog.jar を使用した長期間のリクエストの検索.
|
手順 16 | プロファイルサーバー | AEMで使用できるプロファイルツールについて詳しくは、 パフォーマンスの監視および分析用ツール. |
手順 17 | プロファイリングで処理に時間のかかるメソッドを見つける | |
手順 18 | プロファイルの一般的なシナリオ | 詳しくは、 特定のシナリオの分析 (「パフォーマンスの最適化」セクション内)。 |
手順 19 | CPU 100% | https://helpx.adobe.com/jp/experience-manager/6-3/sites-deploying/monitoring-and-maintaining.html#MonitoringPerformance |
手順 20 | メモリ不足 | |
手順 21 | ディスク I/O | 詳しくは、 ディスク I/O の節を参照してください。 |
手順 22 および 22.1 | キャッシュ率 | 詳しくは、 Dispatcher のキャッシュ率の計算. |
手順 23 | 処理に時間のかかるクエリ | クエリとインデックスに関するベストプラクティス |
手順 24 | リポジトリチューニング | |
手順 25 | 実行されているワークフロー |
|
手順 26 | MSM インフラストラクチャ | |
手順 27 | アセットのチューニング |
|
手順 28 | 閉じられていないセッション |
|
手順 30 | Dispatcher を近くに移動します(または地域ごとに 1 つ追加します) | |
手順 31 | Dispatcher の前で CDN を使用する | CDN での Dispatcher の使用 |
手順 32 | Dispatcher レベルでセッション管理を使用して AEM サーバーをオフロードする | |
手順 33 | リクエストをキャッシュ可能にする |
キャッシュ率を向上させる方法要求をキャッシュ可能にする(Dispatcher のベストプラクティス) また、キャッシュ設定を最適化するために、以下の設定も考慮に入れます。
|
手順 34 | Dispatcher のバージョンをアップグレードします | 最新バージョンの Dispatcher は、次の場所でダウンロードできます。 |
手順 35 | Dispatcher を設定します | Dispatcher の設定 |
手順 36 | キャッシュの無効化を確認します | |
手順 37 および 38 | 遅延読み込み | AEM Web パフォーマンスに関する Gem セッション を参照してください。 |
手順 39 | 接続オーバーヘッドを削減するには、事前接続を使用します | 上記の Gem セッションを参照してください。 また、W3c にも preconnect に関する記載があります。 https://www.w3.org/TR/resource-hints/#dfn-preconnect |
手順 40 および 41 |
外部ホストの遅延と応答時間 | 外部ホストの待ち時間と応答時間を調べます。 |
手順 45 および 47 |
HTTP/2 の使用 | 手順 37、38 および 39 の Gem セッションを参照してください。HTTP/2 サポートに関するこちらのフォーラムへの投稿も参照してください。 |
手順 49 | ペイロードサイズを縮小 | Gzip を有効にする および 画像サイズを縮小する. |
手順 42 および 43 | Keep-Alive | 接続を再利用する別のリクエストに 次の項目を確認できます。 プロキシサーバーツール :キープアライブ接続を確認します。 |
手順 44 | リクエストは何件おこなわれますか? | ブラウザーで標準的な HTTP リクエスト分析を実行します。 |
手順 46 | リクエスト数の削減 |
|
手順 48 | ペイロードのサイズはどれくらいですか? | ブラウザーでの標準 HTTP リクエスト分析 |
手順 50 および 51 | JS コードのブロック | AEM web パフォーマンス |