本頁提供如何最佳化AEM部署效能的一般准則。 如果您是初次使用AEM,請先瀏覽下列頁面,再開始閱讀效能准則:
下圖是AEM可用的部署選項(捲動以檢視所有選項):
AEM 產品 |
拓撲 |
作業系統 |
應用程式伺服器 |
JRE |
安全性 |
微內核 |
資料存放區 |
索引 |
Web伺服器 |
瀏覽器 |
Marketing Cloud |
網站 |
非HA |
Windows |
CQSE |
Oracle |
LDAP |
Tar |
區段 |
屬性 |
Apache |
Edge |
目標 |
資產 |
Publish-HA |
Solaris |
WebLogic |
IBM |
SAML |
MongoDB |
檔案 |
Lucene |
IIS |
IE |
分析 |
社群 |
Author-CS |
紅帽 |
WebSphere |
HP |
Oauth |
RDB/Oracle |
S3/Azure |
Solr |
iPlanet |
FireFox |
行銷活動 |
表單 |
作者卸載 |
HP-UX |
Tomcat |
|
|
RDB/DB2 |
MongoDB |
|
|
鉻黃 |
Social |
行動 |
作者叢集 |
IBM AIX |
JBoss |
|
|
RDB/MySQL |
RDBMS |
|
|
Safari |
對象 |
多網站 |
ASRP |
SUSE |
|
|
|
RDB/SQLServer |
|
|
|
|
資產 |
商務 |
MSRP |
Apple OS |
|
|
|
|
|
|
|
|
啟動 |
Dynamic Media |
JSRP |
|
|
|
|
|
|
|
|
|
行動 |
品牌入口網站 |
J2E |
|
|
|
|
|
|
|
|
|
|
AoD |
|
|
|
|
|
|
|
|
|
|
|
LiveFyre |
|
|
|
|
|
|
|
|
|
|
|
畫面 |
|
|
|
|
|
|
|
|
|
|
|
Doc安全性 |
|
|
|
|
|
|
|
|
|
|
|
程式管理 |
|
|
|
|
|
|
|
|
|
|
|
桌面應用程式 |
|
|
|
|
|
|
|
|
|
|
|
效能指引主要適用於AEM Sites。
您應在下列情況下使用效能准則:
本章提供AEM架構及其最重要元件的一般概述。 此外,也提供開發准則,並說明TarMK和MongoMK基準測試中使用的測試案例。
AEM平台包含下列元件:
如需AEM平台的詳細資訊,請參閱什麼是AEM。
AEM部署有三個重要的組成要素。 內容作者、編輯者和核准者用來建立和檢閱內容的製作例項。 核准內容後,內容會發佈至名為發佈例項的第二個例項類型,使用者可從該類型存取內容。 第三個建置區塊是Dispatcher,此模組用於處理快取和URL篩選,並安裝在Web伺服器上。 有關AEM架構的其他資訊,請參閱典型部署方案。
微內核在AEM中充當持續性管理器。 與AEM一起使用的微內核有三種類型:TarMK、MongoDB和關係資料庫(受限制支援)。 根據執行個體的用途和您考慮的部署類型,選擇符合您需求的部署。 有關微內核的其他資訊,請參閱建議部署頁。
在AEM中,二進位資料可與內容節點分開儲存。 儲存二進位資料的位置稱為資料儲存,而內容節點和屬性的位置稱為節點儲存。
Adobe建議將TarMK設為客戶用於AEM製作和發佈執行個體的預設持續性技術。
關係資料庫微內核受限制支援。 使用此類型的微內核之前,請聯繫Adobe客戶服務。
處理大量二進位檔時,建議使用外部資料存放區,而非預設節點存放區,以發揮最大效能。 例如,如果您的專案需要大量媒體資產,將其儲存在檔案或Azure/S3資料存放區下,將比直接儲存在MongoDB中更快地存取。
有關可用配置選項的詳細資訊,請參閱配置節點和資料儲存。
本節中列出的是與AEM搭配使用的自訂索引提供者。 若要深入了解索引,請參閱Oak查詢與索引。
對於大部分部署,Adobe建議使用Lucene索引。 您只應將Solr用於特殊和複雜部署中的可擴充性。
您應針對AEM開發以效能和可擴充性為目標。 以下呈現您可遵循的一些最佳實務:
DO
不要
如果您可以,請勿直接使用JCR API
請勿變更/libs,而是使用覆蓋
盡可能不要使用查詢
請勿使用Sling系結來取得Java程式碼中的OSGi服務,而應使用:
如需有關在AEM上開發的詳細資訊,請參閱Developing - The Basics。 如需其他最佳實務,請參閱開發最佳實務。
此頁面上顯示的所有基準測試都已在實驗室設定中執行。
以下詳述的測試案例會用於TarMK、MongoMk和TarMK與MongoMk章節的基準區段。 要查看特定基準測試使用的方案,請閱讀技術規範表中的方案欄位。
單一產品案例
AEM Assets:
混合產品案例
AEM Sites +資產:
垂直使用案例情境
媒體:
本章介紹TarMK的一般效能指南,指定最低架構需求和設定配置。 也提供了基準測試,以進一步說明。
Adobe建議將TarMK設為客戶在所有部署案例(針對AEM製作和發佈例項)中使用的預設持續性技術。
有關TarMK的詳細資訊,請參閱部署方案和Tar Storage。
以下提供的最低架構指引適用於生產環境和高流量網站。 這些是運行AEM所需的not最小規範。
若要在使用TarMK時建立良好的效能,您應從下列架構開始:
下圖是AEM網站和AEM Assets的架構指引。
如果共用檔案資料儲存區,則應將ON開啟無二進位復寫。
AEM Sites的Tar架構指引
AEM Assets的Tar架構指引
為獲得良好效能,您應遵循下列設定准則。 有關如何更改設定的說明,請參閱本頁。
設定 | 參數 | 值 | 說明 |
Sling作業佇列 | queue.maxparallel |
將值設定為CPU內核數的一半。 | 預設情況下,每個作業隊列的併發線程數等於CPU核心數。 |
Granite暫時工作流程佇列 | Max Parallel |
將值設定為CPU內核數的一半 | |
JVM參數 |
|
500000 100000 250000 True |
在AEM啟動指令碼中添加這些JVM參數,以防止擴展查詢超出系統負載。 |
Lucene索引配置 |
|
已啟用 已啟用 已啟用 |
有關可用參數的詳細資訊,請參見此頁。 |
資料存放區= S3資料存放區 |
|
1048576(1MB)或更小 最大堆大小的2-10% |
另請參閱資料儲存配置。 |
DAM更新資產工作流程 | Transient Workflow |
已勾選 | 此工作流程會管理資產的更新。 |
DAM中繼資料回寫 | Transient Workflow |
已勾選 | 此工作流程會管理XMP回寫至原始二進位檔,並在JCR中設定上次修改的日期。 |
基準測試是按以下規格執行的:
製作節點 | |
---|---|
伺服器 | 裸機硬體(HP) |
作業系統 | RedHat Linux |
CPU/內核 | 英特爾®至強®CPU E5-2407 @2.40GHz,8核 |
RAM | 32GB |
磁碟 | 磁性 |
Java | OracleJRE第8版 |
JVM堆 | 16GB |
產品 | AEM 6.2 |
Nodestore | TarMK |
資料存放區 | 檔案DS |
藍本 | 單一產品:資產/ 30個並行執行緒 |
以下數字已標準化為1作為基準,而不是實際吞吐量數字。
選擇MongoMK永續性後端而不選擇TarMK的主要原因是橫向縮放執行個體。 這表示有兩個或多個活動的作者實例始終運行,並使用MongoDB作為持久性儲存系統。 執行多個製作執行個體的需求,一般是因為單一伺服器的CPU和記憶體容量(支援所有同時編寫活動)已無法持續。
若要在使用MongoMK時建立良好的效能,您應從下列架構開始:
在生產環境中, MongoDB將始終用作具有主節點和兩個輔助節點的複製副本集。 讀取和寫入會轉到主節點,而讀取會轉到輔助節點。 如果儲存不可用,則可以用仲裁程式替換其中一個輔助程式,但MongoDB副本集必須始終由奇數個實例組成。
如果共用檔案資料儲存區,則應將ON開啟無二進位復寫。
為獲得良好效能,您應遵循下列設定准則。 有關如何更改設定的說明,請參閱本頁。
設定 | 參數 | 值(預設值) | 說明 |
Sling作業佇列 | queue.maxparallel |
將值設定為CPU內核數的一半。 | 預設情況下,每個作業隊列的併發線程數等於CPU核心數。 |
Granite暫時工作流程佇列 | Max Parallel |
將值設定為CPU內核數的一半。 | |
JVM參數 |
|
500000 100000 250000 True 60000 |
在AEM啟動指令碼中添加這些JVM參數,以防止擴展查詢超出系統負載。 |
Lucene索引配置 |
|
已啟用 已啟用 已啟用 |
有關可用參數的詳細資訊,請參見此頁。 |
資料存放區= S3資料存放區 |
|
1048576(1MB)或更小 最大堆大小的2-10% |
另請參閱資料儲存配置。 |
DocumentNodeStoreService |
|
2048年 35(25) 20(10) 30(5) 10(3) 4(4) 。/cache,size=2048,二進位=0,-compact,-compress |
快取的預設大小設定為256 MB。 會影響執行快取失效所花費的時間。 |
oak-overation |
|
最小值和最大值= 20 50000 |
基準測試是按以下規格執行的:
製作節點 | MongoDB節點 | |
---|---|---|
伺服器 | 裸機硬體(HP) | 裸機硬體(HP) |
作業系統 | RedHat Linux | RedHat Linux |
CPU/內核 | 英特爾®至強®CPU E5-2407 @2.40GHz,8核 | 英特爾®至強®CPU E5-2407 @2.40GHz,8核 |
RAM | 32GB | 32GB |
磁碟 | 磁性 — 超過1k IOPS | 磁性 — 超過1k IOPS |
Java | OracleJRE第8版 | N/A |
JVM堆 | 16GB | 不適用 |
產品 | AEM 6.2 | MongoDB 3.2 WiredTiger |
Nodestore | MongoMK | 不適用 |
資料存放區 | 檔案DS | 不適用 |
藍本 | 單一產品:資產/ 30個並行執行緒 | 單一產品:資產/ 30個並行執行緒 |
以下數字已標準化為1作為基準,而不是實際吞吐量數字。
在兩者之間進行選擇時,需要考慮的基本規則是TarMK是為效能而設計,而MongoMK是為了擴充性。 Adobe建議將TarMK設為客戶在所有部署案例(針對AEM製作和發佈例項)中使用的預設持續性技術。
選擇MongoMK永續性後端而不選擇TarMK的主要原因是橫向縮放執行個體。 這表示有兩個或多個活動的作者實例始終運行,並使用MongoDB作為持久性儲存系統。 需要執行多個製作執行個體通常是因為單一伺服器的CPU和記憶體容量(支援所有同時編寫活動)已無法持續。
如需TarMK與MongoMK的詳細資訊,請參閱建議部署。
TarMK的優點
選擇MongoMK的條件
以下數字已標準化為1作為基準,而不是實際吞吐量數字。
製作OAK節點 | MongoDB節點 | ||
伺服器 | 裸機硬體(HP) | 裸機硬體(HP) | |
作業系統 | RedHat Linux | RedHat Linux | |
CPU/內核 | 英特爾(R)至強(R)CPU E5-2407 @2.40GHz,8核 | 英特爾(R)至強(R)CPU E5-2407 @2.40GHz,8核 | |
RAM | 32GB | 32GB | |
磁碟 | 磁性 — 超過1k IOPS | 磁性 — 超過1k IOPS | |
Java | OracleJRE第8版 | 不適用 | |
JVM堆16GB | 16GB | 不適用 | |
產品 | AEM 6.2 | MongoDB 3.2 WiredTiger | |
Nodestore | TarMK或MongoMK | 不適用 | |
資料存放區 | 檔案DS | 不適用 | |
藍本 |
|
若要啟用與使用一個TarMK系統時相同數量的MongoDB作者,您需要具有兩個AEM節點的叢集。 四個節點的MongoDB群集可處理1.8倍於一個TarMK實例的作者數。 八個節點的MongoDB群集可處理的作者數是一個TarMK實例的2.3倍。
製作TarMK節點 | 製作MongoMK節點 | MongoDB節點 | |
伺服器 | AWS c3.8xlarge | AWS c3.8xlarge | AWS c3.8xlarge |
作業系統 | RedHat Linux | RedHat Linux | RedHat Linux |
CPU/內核 | 32 | 32 | 32 |
RAM | 60GB | 60GB | 60GB |
磁碟 | 固態硬碟 — 10k IOPS | 固態硬碟 — 10k IOPS | 固態硬碟 — 10k IOPS |
Java | OracleJRE第8版 | OracleJRE第8版 |
不適用 |
JVM堆16GB | 30GB | 30GB | 不適用 |
產品 | AEM 6.2 | AEM 6.2 | MongoDB 3.2 WiredTiger |
Nodestore | TarMK | MongoMK | 不適用 |
資料存放區 | 檔案DS | 檔案DS |
不適用 |
藍本 |
|
本頁所列准則概述如下:
TarMK與檔案資 料集是大多數客戶建議的架構:
MongoMK with File Datastore 是建議的架構,可擴充至作者階層的水準:
Nodestore應儲存在本地磁碟上,而不是網路連接儲存(NAS)上
使用Amazon S3時:
除了根據最常見的搜尋建立現成可用的索 引外,還應建立自訂索引
自訂工作流程可大幅改善效能,例如移除「更新資產」工作流程中的視訊步驟、停用未使用的接聽程式等。
如需詳細資訊,請另閱建議部署頁面。