效能准則 performance-guidelines

本頁提供如何最佳化AEM部署效能的一般准則。 如果您是AEM的新手,請先檢閱下列頁面,再開始閱讀效能指南:

下圖說明了AEM可用的部署選項(捲動檢視所有選項):

AEM

產品

拓樸
作業系統
應用程式伺服器
JRE
安全性
微核心
資料存放區
建立索引
網頁伺服器
瀏覽器
Experience Cloud
Sites
非HA
Windows
CQSE
Oracle
LDAP
Tar
區段
屬性
Apache
邊緣
目標
Assets
Publish-HA
Solaris™
WebLogic
®
SAML
MongoDB
檔案
Lucene
IIS
IE
分析
Communities
Author-CS
Red Hat®
WebSphere®
HP
Oauth
RDB/Oracle
S3/Azure
Solr
iPlanet
FireFox
Campaign
Forms
Author-Offload
HP-UX
Tomcat
RDB/DB2
MongoDB
Chrome
社交
行動裝置
作者 — 叢集
® AIX®
JBoss®
RDB/MySQL
RDBMS
Safari
客群
多網站
ASRP
SUSE®
RDB/SQLServer
Assets
Commerce
MSRP
Apple作業系統
啟用
Dynamic Media
JSRP
行動裝置
Brand Portal
J2E
AoD
LiveFyre
Screens
檔案安全性
程式管理
案頭應用程式
NOTE
效能指引主要適用於AEM Sites。

何時使用效能指南 when-to-use-the-performance-guidelines

請在下列情況下使用效能准則:

  • 首次部署:規劃為首次部署AEM Sites或Assets時,請務必瞭解可用的選項。 尤其是在設定Micro Kernel、Node Store和Data Store時(與預設設定相比)。 例如,將TarMK的「資料存放區」預設設定變更為「檔案資料存放區」。
  • 升級至新版本:升級至新版本時,請務必瞭解與執行中環境相比的效能差異。 例如,從AEM 6.1升級至6.2,或從AEM 6.0 CRX2升級至6.2 OAK。
  • 回應時間緩慢:當選取的Nodestore架構不符合您的需求時,請務必瞭解與其他拓撲選項相比的效能差異。 例如,部署TarMK而非MongoMK,或使用檔案資料存放區而非Amazon S3或Microsoft® Azure資料存放區。
  • 新增更多作者:當建議的TarMK拓撲不符合效能需求,且將作者節點放大已達到可用的最大容量時,請瞭解效能差異。 請和使用MongoMK搭配三個或更多作者節點比較。 例如,部署MongoMK而非TarMK。
  • 新增更多內容:當建議的資料存放區架構不符合您的需求時,請務必瞭解與其他資料存放區選項相比的效能差異。 範例:使用Amazon S3或Microsoft® Azure資料存放區,而非檔案資料存放區。

簡介 introduction

本章概述AEM架構及其最重要的元件。 它還提供開發准則,並說明TarMK和MongoMK基準測試中使用的測試情境。

AEM平台 the-aem-platform

AEM平台包含下列元件:

chlimage1

如需AEM平台的詳細資訊,請參閱什麼是AEM。

AEM架構 the-aem-architecture

AEM部署有三個重要的建置組塊。 內容作者、編輯者和核准者用來建立和檢閱內容的​作者執行個體。 內容獲得核准後,會發佈至名為​ 發佈執行個體 ​的第二個執行個體型別,一般使用者可從中存取內容。 第三個建置區塊是​Dispatcher,它是處理快取和URL篩選的模組,並安裝在網頁伺服器上。 如需AEM架構的其他資訊,請參閱一般部署案例。

chlimage1-1

微核心 micro-kernels

微核心可充當AEM中的持續性管理員。 AEM使用的微核心有三種型別:TarMK、MongoDB和關聯式資料庫(受限制支援)。 選擇適合您需求的部署型別,取決於執行個體的用途以及您考慮的部署型別。 如需微核心的其他資訊,請參閱建議的部署頁面。

chlimage1-2

節點存放區 nodestore

在AEM中,二進位資料可與內容節點分開儲存。 儲存二進位資料的位置稱為​資料存放區,而內容節點和屬性的位置稱為​節點存放區。

NOTE
Adobe建議TarMK是客戶用於AEM製作和發佈執行個體的預設持續性技術。
CAUTION
關聯式資料庫微核心受到限制支援。 使用此型別的Micro Kernel之前,請連絡Adobe客戶服務。

chlimage1-3

資料存放區 data-store

在處理大量二進位檔時,建議您使用外部資料存放區,而非預設節點存放區,以發揮最大效能。 例如,如果您的專案需要許多媒體資產,將它們儲存在「檔案」或「Azure/S3資料存放區」下,可讓您比直接將它們儲存在MongoDB中更快存取它們。

如需有關可用組態選項的詳細資訊,請參閱設定節點與資料存放區。

NOTE
Adobe建議您選擇使用Adobe Managed Services在Azure或Amazon Web Services (AWS)上部署AEM的選項。 客戶受益於擁有在這些雲端運算環境中部署和操作AEM的經驗和技能的團隊。 請參閱有關Adobe Managed Services的其他檔案。
如需如何在Adobe Managed Services之外的Azure或AWS上部署AEM的建議,Adobe建議直接與雲端服務供應商合作。 或者,請洽詢Adobe的合作夥伴,由其支援在您選擇的雲端環境中部署AEM。 選取的雲端服務供應商或合作夥伴負責其支援的架構調整規格、設計和實作,以符合您的特定效能、負載、擴充性和安全性需求。
​>另請參閱技術需求頁面。

搜尋 search-features

本節所列為搭配AEM使用的自訂索引提供者。 若要進一步瞭解建立索引,請參閱Oak查詢與索引。

NOTE
對於大部分的部署,Adobe建議使用Lucene索引。 在專業且複雜的部署中,僅使用Solr進行擴充性。

chlimage1-4

開發指導方針 development-guidelines

針對AEM開發,以尋求​效能與擴充性。 以下是您可以遵循的最佳實務:

DO

  • 套用簡報、邏輯和內容的分離
  • 使用現有的AEM API (例如:Sling)和工具(例如:復寫)
  • 在實際內容的內容中開發
  • 為最佳快取能力而開發
  • 將儲存次數減至最少(例如:使用暫時性工作流程)
  • 請確定所有HTTP端點均為RESTful
  • 限制JCR觀察的範圍
  • 留意非同步執行緒

DO NOT

  • 如果可以,請勿直接使用JCR API

  • 請勿變更/libs,而是使用覆蓋

  • 儘量不要使用查詢

  • 請勿使用Sling Bindings來取得Java™程式碼中的OSGi服務,而是使用:

    • DS元件中的@Reference
    • 在Sling模型中@Inject立
    • Sightly Use類別中的sling.getService()
    • JSP中的sling.getService()
    • ServiceTracker
    • 直接存取OSGi服務登入

如需有關在AEM上開發的詳細資訊,請閱讀開發 — 基本知識。 如需其他最佳做法,請參閱開發最佳做法。

基準案例 benchmark-scenarios

NOTE
此頁面上顯示的所有基準測試已在實驗室設定中執行。

以下詳述的測試場景用於TarMK、MongoMk和TarMK與MongoMk章節的基準區段。 若要檢視哪一個案例用於特定基準測試,請從技術規格表格中讀取[案例]欄位。

單一產品案例

AEM Assets:

  • 使用者互動:瀏覽Assets /搜尋Assets /下載資產/讀取資產中繼資料/更新資產中繼資料/上傳資產/執行上傳資產工作流程
  • 執行模式:同時存在的使用者,每個使用者的單一互動

混合產品案例

AEM Sites + Assets:

  • 網站使用者互動:讀取文章頁面/讀取頁面/建立段落/編輯段落/建立內容頁面/啟動內容頁面/作者搜尋
  • Assets使用者互動:瀏覽Assets /搜尋Assets /下載資產/讀取資產中繼資料/更新資產中繼資料/上傳資產/執行上傳資產工作流程
  • 執行模式:並行使用者,每個使用者的混合互動

垂直使用案例情境

媒體:

  • Read Article Page (27.4%), Read Page (10.9%), Create Session (2.6%), Activate Content Page (1.7%), Create Content Page (0.4%), Create Paragraph (4.3%), Edit Paragraph (0.9%), Image Component (0.9%), Browse Assets (20%), Read Asset Metadata (8.5%), Download Asset (4.2%), Search Asset (0.2%), Update Asset Metadata (2.4%), Upload Asset (1.2%), Browse Project (4.9%), Read Project (6.6%), Project Add Asset (1.2%), Project Add Site (1.2%), Create Project (0.1%), Author Search (0.4%)
  • 執行模式:並行使用者,每個使用者的混合互動

tarmk tarmk

本章提供TarMK的一般效能准則,指定最低架構需求和設定組態。 此外,也提供基準測試,以進一步釐清事實。

Adobe建議讓TarMK成為客戶在所有部署案例中使用的預設持續性技術,適用於AEM製作和發佈執行個體。

如需TarMK的詳細資訊,請參閱部署案例和Tar儲存空間。

TarMK最低架構指導方針 tarmk-minimum-architecture-guidelines

NOTE
以下是最低架構指引,適用於生產環境和高流量網站。 這些准則是​ 不是 ​執行AEM的最低規格。

若要在使用TarMK時建立良好的效能,您應該從下列架構開始:

  • 一個作者執行個體
  • 兩個發佈執行個體
  • 兩個Dispatcher

以下說明AEM sites和AEM Assets的架構指導方針。

NOTE
如果檔案資料存放區已共用,無二進位檔復寫應該開啟​ON。

AEM Sites的Tar架構指導方針

chlimage1-5

AEM Assets的Tar架構指導方針

chlimage1-6

TarMK設定指引 tarmk-settings-guideline

為了獲得良好的效能,您應該遵循以下提供的設定准則。 如需如何變更設定的說明,請參閱效能最佳化。

設定
參數
值
說明
Sling工作佇列
queue.maxparallel
將值設定為CPU核心數量的一半。
依預設,每個工作佇列的並行執行緒數等於CPU核心數。
Granite暫時工作流程佇列
Max Parallel
將值設定為CPU核心數量的一半
JVM引數

Doak.queryLimitInMemory

Doak.queryLimitReads

Dupdate.limit

Doak.fastQuerySize

500000

100000

250000

真

為避免擴充查詢讓系統過載,請在AEM啟動指令碼中新增這些JVM引數。
Lucene索引設定

CopyOnRead

CopyOnWrite

Prefetch Index Files

已啟用

已啟用

已啟用

如需可用引數的詳細資訊,請參閱此頁面。
資料存放區= S3資料存放區

maxCachedBinarySize

cacheSizeInMB

1048576 (1 MB)或以下

最大棧積大小的2-10%

另請參閱資料存放區組態。
DAM更新資產工作流程
Transient Workflow
已核取
此工作流程管理資產的更新。
DAM 後設資料回寫
Transient Workflow
已核取
此工作流程會管理XMP對原始二進位的回寫,並設定JCR中的上次修改日期。

TarMK效能基準 tarmk-performance-benchmark

技術規格 technical-specifications

效能標竿測試是依據下列規格執行:

作者節點
伺服器
裸機硬體(HP)
作業系統
Red Hat® Linux®
CPU /核心
Intel® Xeon® CPU E5-2407 @2.40GHz,8核心
RAM
32 GB
磁碟
磁性
Java™
Oracle JRE第8版
JVM棧積
16 GB
產品
AEM 6.2
節點存放區
tarmk
資料存放區
檔案DS
情境
單一產品:Assets / 30個同時執行緒

效能標竿結果 performance-benchmark-results

NOTE
以下顯示的數字已標準化為1作為基準,並非實際輸送量數字。

chlimage1-7 chlimage1-8

MongoMk mongomk

選擇MongoMK持續性後端而非TarMK的主要原因是要水平縮放執行個體。 這項能力表示擁有兩個或多個始終執行中的作用中製作執行個體,並使用MongoDB做為持續性儲存系統。 需要執行多個製作執行個體,通常是因為單一伺服器支援所有並行製作活動的CPU和記憶體容量已無法持續。

如需TarMK的詳細資訊,請參閱部署案例和Mongo儲存空間。

MongoMK最低架構指導方針 mongomk-minimum-architecture-guidelines

若要在使用MongoMK時建立良好的效能,您應該從下列架構開始:

  • 三個作者執行個體
  • 兩個發佈執行個體
  • 三個MongoDB執行個體
  • 兩個Dispatcher
NOTE
在生產環境中,MongoDB一律會作為具有主要和兩個次要的復本集使用。 讀取和寫入會移至主要位置,而讀取會移至次要位置。 如果無法使用儲存體,可以使用仲裁器來取代其中一個次要的,但MongoDB復本集必須一律由奇數例項組成。
NOTE
如果檔案資料存放區已共用,無二進位檔復寫應該開啟​ON。

chlimage1-9

MongoMK設定指南 mongomk-settings-guidelines

為了獲得良好的效能,您應該遵循以下提供的設定准則。 如需如何變更設定的說明,請參閱效能最佳化。

設定
參數
值(預設)
說明
Sling工作佇列
queue.maxparallel
將值設定為CPU核心數量的一半。
依預設,每個工作佇列的並行執行緒數等於CPU核心數。
Granite暫時工作流程佇列
Max Parallel
將值設定為CPU核心數量的一半。
JVM引數

Doak.queryLimitInMemory

Doak.queryLimitReads

Dupdate.limit

Doak.fastQuerySize

Doak.mongo.maxQueryTimeMS

500000

100000

250000

真

60000

為避免擴充查詢讓系統過載,請在AEM啟動指令碼中新增這些JVM引數。
Lucene索引設定

CopyOnRead

CopyOnWrite

Prefetch Index Files

已啟用

已啟用

已啟用

如需可用引數的詳細資訊,請參閱此頁面。
資料存放區= S3資料存放區

maxCachedBinarySize

cacheSizeInMB

1048576 (1 MB)或以下

最大棧積大小的2-10%

另請參閱資料存放區組態。
DocumentNodeStoreService

cache

nodeCachePercentage

childrenCachePercentage

diffCachePercentage

docChildrenCachePercentage

prevDocCachePercentage

persistentCache

2048

35 (25)

20 (10)

30 (5)

10 (3)

4 (4)

./cache,size=2048,binary=0,-compact,-compress

快取的預設大小設定為256 MB。

會影響執行快取失效所需的時間。

oak-observation

thread pool

length

最小與最大= 20

50000

MongoMK效能基準 mongomk-performance-benchmark

技術規格 technical-specifications-1

效能標竿測試是依據下列規格執行:

作者節點
MongoDB節點
伺服器
裸機硬體(HP)
裸機硬體(HP)
作業系統
Red Hat® Linux®
Red Hat® Linux®
CPU /核心
Intel® Xeon® CPU E5-2407 @2.40GHz,8核心
Intel® Xeon® CPU E5-2407 @2.40GHz,8核心
RAM
32 GB
32 GB
磁碟
磁性 — >1k IOPS
磁性 — >1k IOPS
Java™
Oracle JRE第8版
不適用
JVM棧積
16 GB
不適用
產品
AEM 6.2
MongoDB 3.2 WiredTiger
節點存放區
MongoMk
不適用
資料存放區
檔案DS
不適用
情境
單一產品:Assets / 30個同時執行緒
單一產品:Assets / 30個同時執行緒

效能標竿結果 performance-benchmark-results-1

NOTE
以下顯示的數字已標準化為1作為基準,並非實際輸送量數字。

chlimage1-10 chlimage1-11

TarMK與MongoMK tarmk-vs-mongomk

在兩者之間進行選擇時,要考慮的基本規則是,TarMK是針對效能而設計,而MongoMK則是用於擴充性。 Adobe建議讓TarMK成為客戶在所有部署案例中使用的預設持續性技術,適用於AEM製作和發佈執行個體。

選擇MongoMK持續性後端而非TarMK的主要原因是要水平縮放執行個體。 此功能表示需永遠執行兩個或多個作用中的製作執行個體,並使用MongoDB做為持續性儲存系統。 通常需要執行多個製作執行個體,是因為單一伺服器支援所有並行製作活動的CPU和記憶體容量已無法持續。

如需TarMK與MongoMK的詳細資訊,請參閱建議的部署。

TarMK與MongoMk指南 tarmk-vs-mongomk-guidelines

TarMK的優點

  • 專門為內容管理應用程式建置
  • 檔案始終保持一致,可以使用任何檔案式備份工具進行備份
  • 提供容錯移轉機制 — 如需詳細資訊,請參閱冷待命
  • 以最低的營運開銷提供高效能和可靠的資料儲存
  • 降低總體擁有成本(總體擁有成本)

選擇MongoMK的條件

  • 一天內連線的已命名使用者數目(以千或以上為單位)
  • 同時使用者人數:以數百或更多計
  • 每日資產擷取量:數十萬或以上
  • 每日頁面編輯量:數十萬或以上
  • 每日搜尋量:以萬或以上為單位

TarMK與MongoMK效能標竿 tarmk-vs-mongomk-benchmarks

NOTE
以下顯示的數字已標準化為1作為基準,並非實際的輸送量數字。

案例1技術規格 scenario-technical-specifications

編寫OAK節點
MongoDB節點
伺服器
裸機硬體(HP)
裸機硬體(HP)
作業系統
Red Hat® Linux®
Red Hat® Linux®
CPU /核心
Intel(R) Xeon(R) CPU E5-2407 @2.40GHz,8核心
Intel(R) Xeon(R) CPU E5-2407 @2.40GHz,8核心
RAM
32 GB
32 GB
磁碟
磁性 — >1k IOPS
磁性 — >1k IOPS
Java™
Oracle JRE第8版
不適用
JVM棧積16GB
16 GB
不適用
產品
AEM 6.2
MongoDB 3.2 WiredTiger
節點存放區
tarmk或MongoMK
不適用
資料存放區
檔案DS
不適用
情境
單一產品:Assets /每次執行30個並行執行緒

案例1效能基準結果 scenario-performance-benchmark-results

chlimage1-12

案例2技術規格 scenario-technical-specifications-1

NOTE
若要啟用與使用一個TarMK系統相同數量的MongoDB作者,您需要具有兩個AEM節點的叢集。 四個節點的MongoDB叢集可以處理一個TarMK執行個體數的1.8倍。 八個節點的MongoDB叢集可以處理一個TarMK執行個體數的2.3倍。
作者TarMK節點
作者MongoMK節點
MongoDB節點
伺服器
AWS c3.8xlarge
AWS c3.8xlarge
AWS c3.8xlarge
作業系統
Red Hat® Linux®
Red Hat® Linux®
Red Hat® Linux®
CPU /核心
32
32
32
RAM
60 GB
60 GB
60 GB
磁碟
SSD - 10,000IOPS
SSD - 10,000IOPS
SSD - 10,000IOPS
Java™
Oracle JRE第8版
Oracle JRE第8版
不適用
JVM棧積16GB
30 GB
30 GB
不適用
產品
AEM 6.2
AEM 6.2
MongoDB 3.2 WiredTiger
節點存放區
tarmk
MongoMk
不適用
資料存放區
檔案DS
檔案DS
不適用
情境
垂直使用案例:媒體/ 2000個同時執行緒

案例2效能基準結果 scenario-performance-benchmark-results-1

chlimage1-13

AEM Sites和Assets的架構擴充性方針 architecture-scalability-guidelines-for-aem-sites-and-assets

chlimage1-14

效能准則摘要 summary-of-performance-guidelines

此頁面上呈現的准則可歸納如下:

  • TarMK與File Datastore — 建議大部分客戶的架構:

    • 最小拓撲:一個製作執行個體、兩個發佈執行個體、兩個Dispatcher
    • 如果檔案資料存放區已共用,會開啟無二進位檔復寫
  • 具有檔案資料存放區的MongoMK — 建議的Author層級水準擴充性架構:

    • 最小拓撲:三個作者執行個體、三個MongoDB執行個體、兩個發佈執行個體、兩個Dispatcher
    • 如果檔案資料存放區已共用,會開啟無二進位檔復寫
  • Nodestore — 儲存在本機磁碟上,而非網路附加儲存裝置(NAS)

  • 使用​ Amazon S3 ​時:

    • Amazon S3資料存放區會在製作和發佈層級之間共用
    • 必須開啟無二進位檔復寫
    • 資料存放區記憶體回收需要先在所有Author和Publish節點上執行,然後在作者上執行第二次
  • 除了現成可用的索引之外,應該建立自訂索引 — 根據最常見的搜尋

    • Lucene索引應用於自訂索引
  • 自訂工作流程可大幅改善效能 — 移除「更新資產」工作流程中的視訊步驟、停用未使用的接聽程式等。

如需詳細資訊,請閱讀建議的部署頁面。

recommendation-more-help
experience-manager-65-help-main-toc