效能樹

範圍

下圖旨在提供疑難排解效能問題所需採取步驟的指引。 分成5個區段,方便閱讀。

圖表中的每個步驟都會連結至檔案資源或建議。

先決條件和假設

假設是在指定頁面(AEM主控台或網頁)上觀察到效能問題,且可一致地重新產生。 在開始調查之前,必須具備測試或監控效能的方法。

分析從步驟0開始。 目標是要判斷哪個實體(Dispatcher、外部主機或AEM)要負責效能問題,然後判斷應該調查哪個區域(伺服器或網路)。

區段 1

chlimage_1-103

區段 2

chlimage_1-104

區段 3

chlimage_1-105

區段 4

chlimage_1-105

第5節

chlimage_1-107

步驟 標題 資源
步驟 0 分析請求流程

您可以在瀏覽器中使用標準HTTP請求分析來分析請求流程。 如需如何在Chrome上執行此動作的詳細資訊,請參閱:

https://developers.google.com/web/tools/chrome-devtools/profile/network-performance/resource-
loadinghttps://developers.google.com/web/tools/chrome-devtools/profile/network-performance/understanding-resource-timing

步驟 2 請求是否來自外部主機? 您可以在瀏覽器中使用標準HTTP請求分析來分析請求流程。 請參閱上述連結,了解如何在Chrome上執行此操作。
步驟 3 是否可快取請求? 如需可快取請求和一般Dispatcher效能最佳化建議的詳細資訊,請參閱Dispatcher效能最佳化
步驟 4 是否來自Dispatcher的請求?

查看Dispatcher偵錯檔案,查看請求是否已正確快取。

步驟 5 Dispatcher是否嘗試透過AEM驗證每個請求? 在傳送快取資源之前,檢查Dispatcher是否將HEAD請求傳送至AEM以進行驗證。 您可以在AEM access.log中尋找HEAD請求,以完成此操作。 如需詳細資訊,請參閱記錄.
步驟 6 Dispatcher的地理位置是否與使用者相距較遠? 將Dispatcher移近使用者。
步驟 7 Dispatcher的網路層是否正常?
調查網路層的飽和和延遲問題。

步驟 8 慢速可透過本機執行個體重現嗎?

使用Tough Day從生產執行個體複製「真實世界」條件。 如果對於您的開發的方案來說,這不現實,請確保在不同的網路上下文中測試生產實例(或相同的測試實例)。

步驟 9 伺服器的地理位置是否與用戶相距甚遠? 將伺服器移近使用者。
步驟10和29 調查網路層

調查網路層的飽和和延遲問題。

若為製作層級,建議不要超過100毫秒。

有關效能最佳化提示的詳細資訊,請參閱本頁。

步驟 11 將伺服器移得更近,或為每個區域添加一個
步驟 12 疑難排解AEM伺服器 如需詳細資訊,請查看圖表中的下列子步驟。
步驟 13 檢查硬體需求 查看硬體調整指南上的文檔。
步驟 14 檢查效能問題的常見原因
步驟 15 尋找慢速請求

您可以分析request.log或使用rlog.jar來檢查緩慢的請求。

有關使用rlog.jar的詳細資訊,請參見本頁。

請參閱使用rlog.jar尋找持續時間較長的請求

步驟 16 設定檔伺服器

有關可與AEM一起使用的效能分析工具的資訊,請參閱效能監控和分析工具

步驟 17 在分析中查找慢速方法
步驟 18 分析的常見情況 請參閱效能優化部分中的分析特定方案
步驟 19 100% CPU https://helpx.adobe.com/tw/experience-manager/6-3/sites-deploying/monitoring-and-maintaining.html#MonitoringPerformance
步驟 20 記憶體不足
  1. 記憶體不足
  2. 我的應用程式擲回記憶體不足錯誤
  3. 在Helpx上分析記憶體問題。
步驟 21 磁碟I/O

請參閱監視和維護文檔中的磁碟I/O部分。

步驟22和22.1 快取比 請參閱計算Dispatcher快取比率

步驟 23 慢速查詢 查詢和建立索引的最佳實務
步驟 24 存放庫調整
步驟 25 執行中的工作流程

步驟 26 MSM基礎架構

多網站管理員最佳作法

步驟 27 資產調整
  1. Assets同步服務
  2. 多個DAM例項
  3. 效能調整提示文章herehere
步驟 28 非結案工作階段

檢查未關閉的JCR會話

步驟 30 將Dispatcher移得更近(每個「地區」新增一個?)
步驟 31 在Dispatcher前面使用CDN 搭配使用 Dispatcher 與 CDN
步驟 32 使用Dispatcher層級的工作階段管理來卸載AEM伺服器

啟用安全會話

步驟 33 讓請求可快取
  1. 一般Dispatcher設定
  2. 設定Dispatcher快取

如何提高快取率;讓請求可快取(Dispatcher最佳作法)

此外,請考慮下列設定,以最佳化快取設定

  1. 為非GET的HTTP請求設定無快取規則
  2. 將查詢字串設定為不可快取
  3. 請勿快取副檔名遺失的URL
  4. 快取驗證標題(自Dispatcher 4.1.10版起可能)
步驟 34 升級Dispatcher版本

您可以在以下位置下載最新的Dispatcher版本:

追蹤連結

步驟 35 設定Dispatcher 設定Dispatcher
步驟 36 檢查快取失效
步驟37和38 延遲載入 請參閱AEM Web效能的Gem課程。
步驟 39 使用預連接以減少連接開銷 見上文所述的Gem會議。 此外,W3c上的其他檔案也會預先連線: 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標題是否出現在重新使用連線的不同請求中? 否則,這表示每個請求都會導致另一個連接建立,這會帶來不必要的開銷。 (瀏覽器中的標準HTTP要求分析)

您可以檢查代理伺服器工具以檢查保持連接。

步驟 44 提出了多少個請求? 在瀏覽器中執行標準HTTP要求分析。
步驟 46 減少請求數
  1. 串連資源(影像、CSS精靈、JSON等)
  2. Clientlibs內嵌:
    1. 建立用戶端程式庫資料夾 — 請參閱使用內嵌來將請求最小化標題
步驟 48 有效負載的大小是多少? 瀏覽器中的標準HTTP要求分析
步驟50和51 JS程式碼封鎖 https://docs.adobe.com/ddc/en/gems/aem-web-performance.html

本頁內容