效能樹狀結構 performance-tree

範圍 scope

下圖旨在提供疑難排解效能問題所需步驟的指引。 為了方便閱讀,它分為五個區段。

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

必要條件和假設 prerequisites-and-assumptions

假設在指定頁面(AEM主控台或網頁)上發現效能問題,且可一致地重現。 在開始調查之前,必須先有測試或監控效能的方法。

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

區段 1 section

chlimage_1-103

區段 2 section-1

chlimage_1-104

區段 3 section-2

chlimage_1-105

區段 4 section-3

chlimage_1-106

區段 5 section-4

chlimage_1-107

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

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

https://developer.chrome.com/docs/devtools/

步驟 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
緩慢是否可在本機執行個體中重現?
使用Touch 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://experienceleague.adobe.com/docs/experience-manager-release-information/aem-release-updates/previous-updates/aem-previous-versions.html?lang=zh-Hant
步驟 20
記憶體不足
  1. 記憶體不足
  2. 我的應用程式擲回記憶體不足錯誤
  3. 分析記憶體問題。
步驟 21
磁碟I/O
請參閱監視和維護檔案中的磁碟I/O區段。
步驟22和22.1
快取比率
請參閱計算Dispatcher快取比率.
步驟 23
緩慢查詢
查詢和建立索引的最佳實務
步驟 24
儲存區域調整
步驟 25
正在執行的工作流程
步驟 26
MSM基礎結構
多站台管理員最佳作法
步驟 27
Assets調整
  1. Assets同步服務
  2. 多個DAM例項
  3. 效能調整提示文章這裡.
步驟 28
未關閉的工作階段
檢查未關閉的JCR工作階段
步驟 30
拉近Dispatcher (針對每個「地區」新增一個?)
步驟 31
在Dispatcher之前使用CDN
搭配CDN使用Dispatcher
步驟 32
若要解除安裝AEM伺服器,請使用Dispatcher層級的工作階段管理
啟用安全工作階段
步驟 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://html.spec.whatwg.org/#linkTypes
步驟40和41
外部主機延遲和回應時間
調查外部主機的延遲和回應時間。
步驟45
和47
使用HTTP/2
如需步驟37、38和39,請參閱Gem研討會。 另外,請檢視HTTP/2支援上的論壇貼文。
步驟 49
縮小裝載大小
啟用Gzip縮小影像大小
步驟42和43
保持連線

Keep-Alive標頭是否存在於重複使用連線的不同要求中? 否則,這表示每個請求都會導致另一個連線建立,從而造成不必要的額外負荷。 (瀏覽器中的標準HTTP請求分析)

您可以檢查Proxy伺服器工具,以檢查「保持連線」連線。

步驟 44
提出多少要求?
在瀏覽器中執行標準HTTP要求分析。
步驟 46
減少請求數量
  1. 串連資源(影像、CSS sprite、JSON)
  2. Clientlibs內嵌:
    1. 建立使用者端資料庫資料夾 — 請參閱標題使用內嵌將請求最小化
步驟 48
承載的大小為何?
瀏覽器中的標準HTTP請求分析
步驟50和51
JS程式碼封鎖
https://experienceleague.adobe.com/docs/experience-manager-gems-events/gems/gems2016/aem-web-performance.html?lang=zh-Hant
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2