Adobe Experience Manager Assets效能調整指南 assets-performance-tuning-guide
Experience Manager Assets安裝程式包含數個硬體、軟體及網路元件。 視您的部署情況而定,您可能需要對硬體、軟體和網路元件進行特定組態變更,以移除效能瓶頸。
此外,識別並遵守某些軟硬體最佳化准則有助於建立堅實的基礎,讓您的Experience Manager Assets部署符合效能、擴充性和可靠性的期望。
Experience Manager Assets中的效能不佳,可能會影響使用者在互動式效能、資產處理、下載速度和其他領域的體驗。
事實上,效能最佳化是您在為任何專案建立目標度量之前所執行的根本任務。
以下是您發現的某些主要重點領域,並可在效能問題對使用者造成影響之前加以修正。
Platform platform
雖然Experience Manager在數個平台上都有支援,但Adobe發現對Linux®和Windows上的原生工具支援最大,因此有助於提供最佳效能和易於實作。 理想情況下,您應該部署64位元作業系統,以滿足Experience Manager Assets部署的高記憶體需求。 和任何Experience Manager部署一樣,您應該儘可能實作TarMK。 雖然TarMK無法擴展至單一編寫執行個體之外,但發現其效能比MongoMK好。 您可以新增TarMK解除安裝執行個體,以提高Experience Manager Assets部署的工作流程處理能力。
暫存資料夾 temp-folder
若要改善資產上傳時間,請為Java臨時目錄使用高效能儲存。 在Linux®和Windows上,可以使用RAM磁碟機或SSD。 在雲端型環境中,可以使用同等的高速儲存型別。 例如,在Amazon EC2中,暫存資料夾可以使用暫存磁碟機。
假設伺服器具有足夠的記憶體,請設定RAM磁碟機。 在Linux®上,執行下列命令來建立8 GB RAM磁碟機:
mkfs -q /dev/ram1 800000
mkdir -p /mnt/aem-tmp
mount /dev/ram1 /mnt/aem-tmp
df -H | grep aem-tmp
在Windows作業系統上,使用協力廠商驅動程式來建立RAM磁碟機,或只使用高效能儲存裝置(例如SSD)。
一旦高效能暫存磁碟區準備就緒,請設定JVM引數-Djava.io.tmpdir。 例如,您可以將下列JVM引數新增至Experience Manager的bin/start指令碼中的CQ_JVM_OPTS變數:
-Djava.io.tmpdir=/mnt/aem-tmp
Java設定 java-configuration
Java版本 java-version
Adobe建議將Experience Manager Assets部署在Java 8上,以獲得最佳效能。
JVM引數 jvm-parameters
設定下列JVM引數:
-XX:+UseConcMarkSweepGC-Doak.queryLimitInMemory=500000-Doak.queryLimitReads=100000-Dupdate.limit=250000-Doak.fastQuerySize=true
資料存放區和記憶體設定 data-store-and-memory-configuration
檔案資料存放區設定 file-data-store-configuration
建議所有Experience Manager Assets使用者將資料存放區與區段存放區分開。 此外,設定maxCachedBinarySize和cacheSizeInMB引數可協助將效能最大化。 將maxCachedBinarySize設定為快取中可容納的最小檔案大小。 指定cacheSizeInMB內資料存放區所使用的記憶體內部快取大小。 Adobe建議將此值設定在棧積總大小的2-10%之間。 不過,負載/效能測試可協助判斷理想的設定。
設定緩衝影像快取的大小上限 configure-the-maximum-size-of-the-buffered-image-cache
將大量資產上傳到Adobe Experience Manager時,為了允許記憶體耗用量出現非預期的尖峰,並防止JVM因OutOfMemoryErrors而失敗,請減少緩衝影像快取設定的大小上限。 假設您的系統最大棧積(- Xmxparam)為5 GB、Oak BlobCache設定為1 GB,而檔案快取設定為2 GB。 在這種情況下,緩衝快取最多需要1.25 GB和記憶體,這只會留下0.75 GB的記憶體用於非預期的尖峰。
在OSGi Web主控台中設定緩衝快取大小。 在https://host:port/system/console/configMgr/com.day.cq.dam.core.impl.cache.CQBufferedImageCache,設定屬性cq.dam.image.cache.max.memory (位元組)。 例如,1073741824是1 GB (1024 x 1024 x 1024 = 1 GB)。
從Experience Manager 6.1 SP1,如果您使用sling:osgiConfig節點來設定此屬性,請務必將資料型別設定為「長」。
共用的資料存放區 shared-data-stores
實作S3或共用檔案資料存放區有助於在大規模實作中節省磁碟空間並提高網路輸送量。 如需使用共用資料存放區之優點的詳細資訊,請參閱Assets大小調整指南。
S3資料存放區 s-data-store
下列S3資料存放區組態( org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.cfg)已協助Adobe從現有的檔案資料存放區,將12.8 TB的二進位大型物件(BLOB)擷取到客戶網站的S3資料存放區:
accessKey=<snip>
secretKey=<snip>
s3Bucket=<snip>
s3Region=us-standard
s3EndPoint=<a href="https://s3.amazonaws.com/">s3.amazonaws.com</a>
connectionTimeout=120000
socketTimeout=120000
maxConnections=80
writeThreads=60
concurrentUploadsThreads=30
asyncUploadLimit=30
maxErrorRetry=1000
path=/opt/author/crx-quickstart/repository/datastore
s3RenameKeys=false
s3Encryption=SSE_S3
proactiveCaching=true
uploadRetries=1000
migrateFailuresCount=400
網路最佳化 network-optimization
Adobe建議啟用HTTPS,因為許多公司都有會偵聽HTTP流量的防火牆,這會對HTTP上傳和損毀檔案造成負面影響。 對於大型檔案上傳,請確定使用者已連線到網路,因為WiFi網路會快速飽和。 如需識別網路瓶頸的准則,請參閱Assets規模調整指南。 若要藉由分析網路拓撲來評估網路效能,請參閱Assets網路考量事項。
您的網路最佳化策略主要取決於可用的頻寬量以及Experience Manager執行個體的負載。 常見的設定選項(包括防火牆或代理)有助於改善網路效能。 請謹記以下要點:
- 根據您的執行個體型別(小、中、大),請確定您有足夠的網路頻寬來執行Experience Manager執行個體。 如果Experience Manager在AWS上代管,足夠的頻寬配置尤其重要。
- 如果您的Experience Manager執行個體在AWS上託管,則您可以透過通用的縮放原則獲益。 如果使用者預期高負載,請放大執行個體。 縮減大小,以處理中度/低負載。
- HTTPS:大部分使用者都有會偵聽HTTP流量的防火牆,這可能會對檔案上傳造成負面影響,甚至在上傳作業期間損壞檔案。
- 大型檔案上傳:確保使用者已透過有線連線連線到網路(WiFi連線會快速飽和)。
工作流程 workflows
暫時性工作流程 transient-workflows
儘可能將DAM更新資產工作流程設定為暫時性。 設定可大幅減少處理工作流程所需的間接成本,因為在此情況下,工作流程不需要通過正常的追蹤和封存程式。
-
在
https://[aem_server]:[port]/miscadmin的Experience Manager部署中導覽至/miscadmin。 -
展開工具 > 工作流程 > 模型 > dam。
-
開啟DAM更新資產。 從浮動工具面板,切換至 頁面 標籤,然後按一下頁面屬性。
-
選取暫時性工作流程,然後按一下確定。
note note NOTE 部分功能不支援暫時性工作流程。 如果您的Assets部署需要這些功能,請勿設定暫時性工作流程。
若無法使用暫時性工作流程,請定期執行工作流程清除以刪除封存的DAM更新資產工作流程,以確保系統效能不會降低。
通常每週執行清除工作流程。 不過,在資源密集的情況(例如大規模資產擷取期間),您可以更頻繁地執行。
若要設定工作流程清除,請透過OSGi主控台新增新的「Adobe Granite工作流程清除」設定。 接著,設定並排程工作流程,使其成為每週維護時段的一部分。
如果清除執行時間過長,則會逾時。 因此,您應該確保永久刪除工作完成,以避免因工作流程數量過多而導致永久刪除工作流程無法完成的情況。
例如,在執行許多非暫時性工作流程(建立工作流程執行個體節點)後,您就可以臨機執行ACS AEM Commons Workflow Remover。 它會立即移除多餘的已完成工作流程例項,而不是等候Adobe Granite工作流程清除排程器執行。
最大平行作業數 maximum-parallel-jobs
根據預設,Experience Manager執行的平行作業數目上限等於伺服器上的處理器數目。 此設定的問題是,在負載繁重期間,所有處理器都被DAM更新資產工作流程佔用,減慢UI回應速度,並阻止Experience Manager執行其他可保護伺服器效能和穩定性的處理程式。 若要將此值設為伺服器上可用處理器的一半,請執行下列步驟:
-
在Experience Manager作者上,存取
https://[aem_server]:[port]/system/console/slingevent。 -
在每一個與您的實作相關的工作流程佇列上按一下編輯,例如Granite暫時性工作流程佇列。
-
更新 最大平行工作 的值,然後按一下儲存。
將佇列設定為可用處理器的一半,是可行的解決方案。 不過,您可能必須增加或減少此數目,才能達到最大輸送量,並依環境進行調整。 暫時性和非暫時性工作流程和其他程式(例如外部工作流程)有單獨的佇列。 如果數個佇列設定為50%的處理器同時啟動,系統可能會快速超載。 大量使用的佇列在使用者實作中差異極大。 因此,您可能必須周全地設定這些伺服器,才能在不犧牲伺服器穩定性的情況下,發揮最大效率。
DAM更新資產設定 dam-update-asset-configuration
DAM更新資產工作流程包含針對工作設定的完整步驟套件,例如Dynamic Media PTIFF產生和Adobe InDesign Server整合。 不過,大多數使用者可能不需要執行其中的數個步驟。 Adobe建議您建立DAM更新資產工作流程模型的自訂復本,並移除任何不必要的步驟。 在此情況下,請更新DAM更新資產的啟動器,以指向新模型。
大量執行DAM更新資產工作流程可能會大幅增加檔案資料存放區的大小。 Adobe執行的實驗結果顯示,如果在8小時內執行約5500個工作流程,資料存放區大小可以增加約400 GB。
這是一種臨時性的增加,當您執行資料存放區廢棄專案收集工作後,資料存放區會恢復為原始大小。
通常資料存放區記憶體回收任務會與其他排程的維護任務一起每週執行。
如果您的磁碟空間有限,並集中執行DAM更新資產工作流程,請考慮更頻繁地排程記憶體回收工作。
產生執行階段轉譯 runtime-rendition-generation
客戶在其網站上或使用各種大小和格式的影像,或分發給業務合作夥伴。 由於每個轉譯都會增加存放庫中資產的足跡,因此Adobe建議謹慎使用此功能。 若要減少處理和儲存影像所需的資源量,您可以在執行階段產生這些影像,而不是在擷取期間做為轉譯。
許多Sites客戶會實作影像servlet,在請求影像時調整大小並裁切,這會對發佈執行個體施加額外的負載。 不過,只要可以快取這些影像,挑戰就能緩解。
另一種方法是使用Dynamic Media技術完全擺脫影像操控。 此外,您可以部署Brand Portal,不僅從Experience Manager基礎結構接收轉譯產生責任,還可接收整個發佈階層。
ImageMagick imagemagick
如果您自訂DAM更新資產工作流程,以使用ImageMagick產生轉譯,Adobe建議您修改位於/etc/ImageMagick/的policy.xml檔案。 依預設,ImageMagick會使用OS磁碟區上的整個可用磁碟空間,以及可用的記憶體。 在policy.xml的policymap區段內進行下列設定變更以限制這些資源。
<policymap>
<!-- <policy domain="system" name="precision" value="6"/> -->
<policy domain="resource" name="temporary-path" value="/ephemeral0/imagemagick_tmp"/>
<policy domain="resource" name="memory" value="1000MiB"/>
<policy domain="resource" name="map" value="1000MiB"/>
<!-- <policy domain="resource" name="area" value="1gb"/> -->
<policy domain="resource" name="disk" value="10000MiB"/>
<!-- <policy domain="resource" name="file" value="768"/> -->
<policy domain="resource" name="thread" value="1"/>
<policy domain="resource" name="throttle" value="50"/>
<!-- <policy domain="resource" name="time" value="3600"/> -->
</policymap>
此外,請將configure.xml檔案中ImageMagick的暫存資料夾路徑(或透過設定環境變數MAGICK_TEMPORARY_PATH)設定為具有足夠空間和IOPS的磁碟分割。
policy.xml和configure.xml檔案可在/usr/lib64/ImageMagick-*/config/取得,而非/etc/ImageMagick/。 如需組態檔的位置,請參閱ImageMagick檔案(https://www.imagemagick.org/script/resources.php網站)。如果您在Adobe Managed Services (AMS)上使用Experience Manager,如果您計畫處理大量大型PSD或PSB檔案,請聯絡Adobe客戶支援。 與Adobe客戶支援代表合作,為您的AMS部署實作這些最佳實務,並為Adobe的專有格式選擇最佳可行的工具和模型。 Experience Manager可能無法處理超過30000 x 23000畫素的高解析度PSB檔案。
XMP回寫 xmp-writeback
每當在Experience Manager中修改中繼資料時,XMP回寫會更新原始資產,導致下列情況:
- 資產本身已修改
- 已建立資產的版本
列出的結果會消耗相當多的資源。 因此,Adobe建議在不需要時停用XMP回寫。 如需詳細資訊,請參閱XMP回寫。
如果勾選執行工作流程旗標,匯入大量中繼資料可能會導致資源密集的XMP回寫活動。 在精益伺服器使用期間規劃這類匯入,以免影響其他使用者的效能。
複製 replication
將資產復寫至大量發佈例項(例如在Sites實作中)時,Adobe建議您使用鏈結復寫。 在這種情況下,製作執行個體會複製到單一發佈執行個體,接著複製到其他發佈執行個體,釋放製作執行個體。
設定鏈結復寫 configure-chain-replication
- 選擇您要用來連結復寫的發佈執行個體
- 在該發佈執行個體上新增指向其他發佈執行個體的復寫代理
- 在每個復寫代理程式上,啟用「觸發器」標籤上的「接收時」
Search indexes search-indexes
Install the latest Service Packs and performance-related hotfixes as those often include updates to system indexes. See performance tuning tips for some index optimizations.
Create custom indexes for queries that you run often. For details, see the methodology for analyzing slow queries and crafting custom indexes. For additional insights around query and index best practices, see Best Practices for Queries and Indexing.
Lucene index configurations lucene-index-configurations
Some optimizations can be done on the Oak index configurations that can help improve Experience Manager Assets performance. Update the index configurations to improve the re-indexing time:
- Open CRXDe
/crx/de/index.jspand log in as an administrative user. - Browse to
/oak:index/lucene. - Add a
String[]propertyexcludedPathswith values/var,/etc/workflow/instances, and/etc/replication. - Browse to
/oak:index/damAssetLucene. Add aString[]propertyincludedPathswith value/content/dam. Save changes.
If your users do not need to do full-text search of assets, say for example, searching through text in PDF documents, then disable it. You improve index performance by disabling full-text indexing. To disable Apache Lucene text extraction, follow these steps:
- In the Experience Manager interface, access Package Manager.
- Upload and install the package available at disable_indexingbinarytextextraction-10.zip.
Guess Total guess-total
When creating queries that generate large result sets, use the guessTotal parameter to avoid heavy memory utilization when you run them.
已知問題 known-issues
Large files large-files
There are two major known issues related to large files in Experience Manager. When files reach sizes greater than 2 GB, cold standby synchronization can run into an out-of-memory situation. 在某些情況下,它會防止待命同步處理執行。 在其他情況下,這會造成主要執行個體當機。 此案例適用於Experience Manager中大於2GB的任何檔案,包括內容套件。
同樣地,當檔案在使用共用S3資料存放區時達到2 GB的大小時,可能需要一些時間才能將檔案從快取完全儲存至檔案系統。 因此,使用無二進位檔的復寫時,在復寫完成之前,二進位檔資料可能尚未儲存。 這種情況可能會導致問題,尤其是當資料可用性很重要時。
效能測試 performance-testing
針對每個Experience Manager部署,建立效能測試制度,以便快速找出並解決瓶頸。 以下是需要關注的一些關鍵領域。
網路測試 network-testing
針對客戶的所有網路效能問題,請執行以下工作:
- 測試客戶網路內的網路效能
- 在Adobe網路內測試網路效能。 針對AMS客戶,請和您的CSE合作,從Adobe網路中進行測試。
- 從另一個存取點測試網路效能
- 使用網路效能指標工具
- 針對Dispatcher進行測試
Experience Manager部署測試 aem-deployment-testing
若要透過有效率的CPU使用率和負載共用,將延遲降至最低並達到高輸送量,請定期監控Experience Manager部署的效能。 尤其是:
- 針對Experience Manager部署執行負載測試。
- 監視上傳效能和UI回應能力。
Experience Manager Assets效能檢查清單和資產管理任務的影響 checklist
- 啟用HTTPS以繞過任何企業HTTP流量嗅探器。
- 使用有線連線上傳大量資產。
- 在Java 8上部署。
- 設定最佳的JVM引數。
- 設定檔案系統資料存放區或S3資料存放區。
- 停用子資產產生。 如果啟用,AEM的工作流程會為多頁資產中的每個頁面建立個別資產。 這些頁面都是個別資產,會消耗額外的磁碟空間、需要版本設定和其他工作流程處理。 如果您不需要個別頁面,請停用子資產產生和頁面擷取活動。
- 啟用暫時性工作流程。
- 調整Granite工作流程佇列以限制並行工作。
- 設定ImageMagick以限制資源消耗。
- 從DAM更新資產工作流程移除不必要的步驟。
- 設定工作流程和版本清除。
- 使用最新Service Pack和Hotfix最佳化索引。 請向Adobe客戶支援洽詢可能提供的任何其他索引最佳化。
- 使用guessTotal來最佳化查詢效能。
- 如果您設定Experience Manager從檔案內容偵測檔案型別(在 AEM Web Console 中啟用Day CQ DAM Mime Type Service),請在非尖峰時段大量上傳許多檔案,因為它耗用大量資源。