Prestandajusteringsguide för resurser assets-performance-tuning-guide
En Adobe Experience Manager Assets-konfiguration innehåller ett antal maskinvaru-, programvaru- och nätverkskomponenter. Beroende på ditt driftsättningsscenario kan du behöva specifika konfigurationsändringar för maskinvara, programvara och nätverkskomponenter för att ta bort flaskhalsar i prestandan.
Genom att identifiera och följa vissa riktlinjer för optimering av maskinvara och programvara kan du dessutom skapa en stabil grund som gör att Experience Manager Tillgång till resurser för att uppfylla förväntningarna om prestanda, skalbarhet och tillförlitlighet.
Dåliga prestanda i Experience Manager Resurser kan påverka användarupplevelsen kring interaktiva prestanda, bearbetning av resurser, nedladdningshastighet och andra områden.
Prestandaoptimering är en grundläggande uppgift som du utför innan du fastställer målvärden för ett projekt.
Här är några viktiga fokusområden där du kan identifiera och åtgärda prestandaproblem innan de påverkar användarna.
Plattform platform
while Experience Manager stöds på ett antal plattformar, och Adobe har funnit det bästa stödet för inbyggda verktyg i Linux och Windows, vilket ger optimala prestanda och enklare implementering. Bäst är att du driftsätter ett 64-bitars operativsystem för att uppfylla de höga minneskraven i en Experience Manager Distribution av resurser. Som med alla Experience Manager ska du implementera tarMK där det är möjligt. Även om TonaMK inte kan skalas bortom en enda författarinstans, fungerar det bättre än MongoMK. Du kan lägga till instanser för TjärtMK-avlastning för att öka arbetsflödets bearbetningskraft Experience Manager Distribution av resurser.
Tillfällig mapp temp-folder
Om du vill förbättra överföringstiden för resurser använder du lagring med höga prestanda för den tillfälliga Java-katalogen. I Linux och Windows kan en RAM-enhet eller SSD användas. I molnbaserade miljöer kan en motsvarande typ av höghastighetslagring användas. I Amazon EC2 kan du till exempel kortdisk kan användas för den tillfälliga mappen.
Om servern har tillräckligt med minne konfigurerar du en RAM-enhet. Kör följande kommandon i Linux för att skapa en 8 GB RAM-enhet:
mkfs -q /dev/ram1 800000
mkdir -p /mnt/aem-tmp
mount /dev/ram1 /mnt/aem-tmp
df -H | grep aem-tmp
I Windows måste du använda en drivrutin från tredje part för att skapa en RAM-enhet eller bara använda lagring med höga prestanda, som SSD.
När den tillfälliga volymen med höga prestanda är klar anger du JVM-parametern -Djava.io.tmpdir. Du kan till exempel lägga till JVM-parametern nedan till variabeln CQ_JVM_OPTS i skriptet bin/start för AEM:
-Djava.io.tmpdir=/mnt/aem-tmp
Java-konfiguration java-configuration
Java-version java-version
Eftersom Oraclet har slutat släppa uppdateringar för Java 7 från och med april 2015 rekommenderar Adobe driftsättning Experience Manager Assets on Java 8. I vissa fall har den visat bättre prestanda.
JVM-parametrar jvm-parameters
Du bör ange följande JVM-parametrar:
-XX:+UseConcMarkSweepGC
-Doak.queryLimitInMemory
=500000-Doak.queryLimitReads
=100000-Dupdate.limit
=250000-Doak.fastQuerySize
=true
Datalagring och minneskonfiguration data-store-and-memory-configuration
Konfiguration av fillagring file-data-store-configuration
Du bör separera datalagret från segmentlagret för alla Experience Manager Resursanvändare. Dessutom konfigurerar maxCachedBinarySize
och cacheSizeInMB
parametrar kan maximera prestanda. Ange maxCachedBinarySize
till den minsta filstorlek som kan sparas i cachen. Ange storleken på den minnescache som ska användas för datalagret i cacheSizeInMB
. Adobe rekommenderar att du anger det här värdet mellan 2 och 10 procent av den totala stackstorleken. Inläsnings-/prestandatestning kan dock hjälpa till att fastställa den idealiska inställningen.
Konfigurera maximal storlek för buffrad bildcache configure-the-maximum-size-of-the-buffered-image-cache
När du överför stora mängder resurser till Adobe Experience Manager kan du minska den konfigurerade maxstorleken för buffrat bildcacheminne för att undvika oväntade ökningar i minnesanvändningen och för att förhindra att JVM misslyckas med OutOfMemoryErrors. Tänk dig ett exempel på att du har ett system med en maximal heap (- Xmx
param) på 5 GB, en Oak BlobCache inställd på 1 GB och dokumentcache inställd på 2 GB. I det här fallet tar den buffrade cachen upp till 1,25 GB och minne, vilket innebär att endast 0,75 GB minne återstår för oväntade toppar.
Konfigurera den buffrade cachestorleken i OSGi-webbkonsolen. At https://host:port/system/console/configMgr/com.day.cq.dam.core.impl.cache.CQBufferedImageCache
, ange egenskapen cq.dam.image.cache.max.memory
i byte. 1073741824 är till exempel 1 GB (1 024 x 1 024 x 1 024 = 1 GB).
Från Experience Manager 6.1 SP1, om du använder en sling:osgiConfig
nod för att konfigurera den här egenskapen måste du ange datatypen Long. Mer information finns i CQBufferedImageCache förbrukar heap under överföring av tillgångar.
Gemensamma datalager shared-data-stores
Implementering av ett S3- eller delat fildatalager kan bidra till att spara diskutrymme och öka nätverkets genomströmning i storskaliga implementeringar. Mer information om för- och nackdelar med att använda ett delat datalager finns i Handbok för resursstorlek.
S3-datalager s-data-store
Följande konfiguration för S3-datalagret ( org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.cfg
) hjälpte Adobe att extrahera 12,8 TB binära stora objekt (BLOB) från en befintlig fillagring till ett S3-datalager på en kunds webbplats:
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
Nätverksoptimering network-optimization
Adobe rekommenderar att du aktiverar HTTPS eftersom många företag har brandväggar som fångar upp HTTP-trafik, vilket påverkar överföringar negativt och skadar filer. För stora filöverföringar måste användarna ha kabelanslutna anslutningar till nätverket eftersom ett WiFi-nätverk snabbt blir mättat. Riktlinjer för att identifiera flaskhalsar i nätverket finns i Handbok för resursstorlek. Information om hur du utvärderar nätverksprestanda genom att analysera nätverkstopologi finns i Resurser - nätverksaspekter.
Din nätverksoptimeringsstrategi är i första hand beroende av hur mycket bandbredd som är tillgänglig och belastningen på din Experience Manager -instans. Gemensamma konfigurationsalternativ, inklusive brandväggar och proxies, kan förbättra nätverkets prestanda. Här följer några viktiga punkter att tänka på:
- Beroende på vilken instanstyp du har (liten, måttlig, stor) måste du se till att du har tillräcklig nätverksbandbredd för din Experience Manager -instans. Lämplig bandbreddsallokering är särskilt viktig om Experience Manager ligger hos AWS.
- Om Experience Manager som finns på AWS kan du dra nytta av en mångsidig skalningspolicy. Överför instansen om användarna förväntar sig hög belastning. Minska storleken för måttlig/låg belastning.
- HTTPS: De flesta användare har brandväggar som tolkar HTTP-trafik, vilket kan påverka överföringen av filer negativt eller till och med skada filer under överföringen.
- Stora filöverföringar: Kontrollera att användarna har kabelanslutna anslutningar till nätverket (WiFi-anslutningar blir snabbt mättade).
Arbetsflöden workflows
Övergående arbetsflöden transient-workflows
Ställ in arbetsflödet DAM Update Asset på Transient när det är möjligt. Inställningen minskar avsevärt de allmänna kostnader som krävs för att bearbeta arbetsflöden, eftersom arbetsflöden i det här fallet inte behöver passera genom de normala spårnings- och arkiveringsprocesserna.
-
Öppna
http://localhost:4502/miscadmin
på Experience Manager -instans som du vill konfigurera. -
Expandera från navigeringsträdet Tools > Workflow > Models > dam.
-
Dubbelklicka DAM Update Asset.
-
Växla från den flytande verktygspanelen till Page och sedan klicka på Page Properties.
-
Välj Transient Workflow Klicka OK.
note note NOTE Vissa funktioner har inte stöd för tillfälliga arbetsflöden. Om Experience Manager Resursdistribution kräver dessa funktioner, konfigurera inte tillfälliga arbetsflöden. Om det inte går att använda tillfälliga arbetsflöden kör du regelbundet arbetsflödesrensning för att ta bort arkiverade arbetsflöden för DAM Update Asset för att säkerställa att systemprestanda inte försämras.
Vanligtvis bör du köra rensningsarbetsflöden varje vecka. I resurskrävande scenarier, till exempel vid omfattande tillgångsinhämtning, kan du dock köra det oftare.
Om du vill konfigurera rensning av arbetsflöden lägger du till en ny Adobe Granite Workflow Renge-konfiguration via OSGi-konsolen. Konfigurera och schemalägg arbetsflödet som en del av veckounderhållsperioden.
Om tömningen är för lång så tar det för lång tid. Därför bör du se till att rensningsjobben är fullständiga för att undvika situationer där rensningsarbetsflödena misslyckas på grund av det stora antalet arbetsflöden.
När du har kört flera icke-tillfälliga arbetsflöden (som skapar arbetsflödesinstansnoder) kan du köra ACS AEM Commands Workflow Remover på ad hoc-basis. Det tar bort överflödiga, slutförda arbetsflödesinstanser direkt i stället för att vänta på att schemaläggaren för rensning av arbetsflöde i Adobe ska köras.
Maximalt antal parallella jobb maximum-parallel-jobs
Som standard Experience Manager kör ett maximalt antal parallella jobb som är lika med antalet processorer på servern. Problemet med den här inställningen är att under perioder med hög belastning används alla processorer av arbetsflödena för DAM Update Asset, vilket gör att användargränssnittet blir långsammare och förhindrar Experience Manager från att köra andra processer som skyddar serverns prestanda och stabilitet. Det är en god vana att ange det här värdet till hälften av de processorer som är tillgängliga på servern genom att utföra följande steg:
- På Experience Manager Författare, gå till http://localhost:4502/system/console/slingevent.
- Klicka på Redigera i varje arbetsflödeskö som är relevant för implementeringen, till exempel Bevilja tillfällig arbetsflödeskö.
- Ändra värdet för Maximalt antal parallella jobb och klicka på Spara.
Att ställa in en kö på hälften av de tillgängliga processorerna är en användbar lösning att börja med. Du kan dock behöva öka eller minska det här antalet för att få maximal genomströmning och justera det efter miljö. Det finns separata köer för tillfälliga och icke-tillfälliga arbetsflöden samt andra processer, till exempel externa arbetsflöden. Om flera köer är inställda på 50 % av processorerna aktiva samtidigt kan systemet snabbt bli överbelastat. De köer som används ofta varierar mycket mellan olika implementeringar. Därför kan du behöva konfigurera dem noggrant för maximal effektivitet utan att ge avkall på serverstabiliteten.
Avlastning offloading
För stora arbetsflöden eller arbetsflöden som är resurskrävande, till exempel videotranskodning, kan du avlasta arbetsflöden för DAM Update Asset till en andra författarinstans. Problemet med avlastning är ofta att eventuell inläsning som sparas genom avlastning av arbetsflödesbearbetningen motverkas av kostnaden för att replikera innehållet fram och tillbaka mellan instanser.
Från och med Experience Manager 6.2 och med ett funktionspaket för Experience Manager 6.1 kan du avlasta med binär replikering. I den här modellen delar författarinstanserna ett vanligt datalager och skickar bara metadata fram och tillbaka genom framåtreplikering. Detta fungerar bra med ett delat fildatalager, men det kan uppstå problem med ett S3-datalager. Eftersom bakgrundstrådar kan orsaka fördröjning är det möjligt att en resurs inte har skrivits till datalagret innan avlastningsjobbet startar.
DAM-uppdateringskonfiguration dam-update-asset-configuration
Arbetsflödet för DAM-uppdatering av tillgångar innehåller en komplett serie steg som är konfigurerade för uppgifter, till exempel Dynamic Media Classic PTIFF-generering och integrering med InDesign Server. De flesta användare behöver dock inte utföra flera av dessa steg. Adobe rekommenderar att du skapar en anpassad kopia av arbetsflödesmodellen för DAM-uppdatering och tar bort alla onödiga steg. I det här fallet ska du uppdatera startarna för DAM Update Asset så att de pekar på den nya modellen.
Generering av rendering vid körning runtime-rendition-generation
Kunderna använder bilder av olika storlek och format på sin webbplats eller för att distribuera dem till affärspartners. Eftersom varje återgivning ökar utrymmet i databasen rekommenderar Adobe att du använder den här funktionen med gott omdöme. Om du vill minska mängden resurser som behövs för att bearbeta och lagra bilder kan du generera dessa bilder vid körning i stället för som återgivningar vid importen.
Många webbplatskunder implementerar en bildservett som ändrar storlek på och beskär bilder när de begärs, vilket medför ytterligare belastning på publiceringsinstansen. Så länge dessa bilder kan cachas kan utmaningen dock mildras.
Ett annat sätt är att använda Dynamic Media Classic-teknik för att helt och hållet överge bildbearbetning. Dessutom kan du driftsätta Brand Portal som inte bara tar över ansvaret för att skapa renderingar från Experience Manager infrastruktur, men också hela publiceringsnivån.
ImageMagick imagemagick
Om du anpassar arbetsflödet DAM Update Asset för att generera återgivningar med ImageMagick rekommenderar Adobe att du ändrar filen policy.xml på /etc/ImageMagick/. Som standard använder ImageMagick hela det tillgängliga diskutrymmet på operativsystemsvolymen och det tillgängliga minnet. Gör följande konfigurationsändringar i policymap
policy.xml för att begränsa dessa resurser.
<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>
Dessutom anger du sökvägen till den tillfälliga mappen för ImageMagick i configure.xml fil (eller genom att ställa in miljövariabeln MAGIC_TEMPORARY_PATH
) till en diskpartition som har tillräckligt med utrymme och IOPS.
policy.xml
och configure.xml
filer kan hittas under /usr/lib64/ImageMagick-*/config/
i stället för /etc/ImageMagick/
. Se ImageMagick-dokumentation om du vill ha information om konfigurationsfilernas platser.Om du använder Experience Manager om du planerar att bearbeta stora PSD- eller PSB-filer på Adobe Managed Services (AMS) kan du kontakta Adobe kundsupport. Det går inte att bearbeta PSB-filer med hög upplösning som är större än 30000 x 23000 pixlar i Experience Manager.
XMP xmp-writeback
XMP återföring uppdaterar originalresursen när metadata ändras i AEM, vilket ger följande resultat:
- Själva tillgången ändras
- En version av resursen skapas
- DAM Update Asset körs mot resursen
De listade resultaten kräver stora resurser. Adobe rekommenderar därför inaktivera XMP, om det inte är nödvändigt.
Om du importerar en stor mängd metadata kan det leda till resurskrävande XMP återskrivningsaktivitet om körningsarbetsflödesflaggan är markerad. Planera en sådan import under begränsad serveranvändning så att prestanda för andra användare inte påverkas.
Replikering replication
När du replikerar resurser till ett stort antal publiceringsinstanser, till exempel i en webbplatsimplementering, rekommenderar Adobe att du använder kedjereplikering. I det här fallet replikeras författarinstansen till en enda publiceringsinstans som i sin tur replikeras till de andra publiceringsinstanserna och frigör författarinstansen.
Konfigurera kedjereplikering configure-chain-replication
- Välj vilken publiceringsinstans du vill använda för att länka replikeringarna till
- På den publiceringsinstansen lägger du till replikeringsagenter som pekar på andra publiceringsinstanser
- Aktivera On Receive på Triggers tab
Sökindex search-indexes
Se till att du implementerar de senaste Service Pack-uppdateringarna och prestandarelaterade snabbkorrigeringar eftersom de ofta innehåller uppdateringar av systemindex. Se Tips för prestandajustering | 6.x för vissa indexoptimeringar som kan tillämpas, beroende på vilken version av AEM du har.
Skapa anpassade index för frågor som du kör ofta. Mer information finns i metod för att analysera långsamma frågor och skapa egna index. Mer information om metodtips för frågor och index finns i Metodtips för frågor och indexering.
Lucene-indexkonfigurationer lucene-index-configurations
Vissa optimeringar kan göras för Oak-indexkonfigurationer som kan förbättra Experience Manager Resursprestanda:
Uppdatera LuceneIndexProvider-konfigurationen:
- Gå till /system/console/configMgrorg.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProviderService
- Aktivera CopyOnRead , CopyOnWrite , and Prefetch Index Files i versioner före Experience Manager 6.2. Dessa värden är som standard aktiverade i Experience Manager 6.2 och senare versioner.
Uppdatera indexkonfigurationer för att förbättra omindexeringstiden:
- Öppna CRXDe /crx/de/index.jsp och logga in som administrativ användare
- Bläddra till /oak:index/lucene
- Lägg till en sträng[] egenskap med namnet excludedPaths med värdena "/var", "/etc/workflow/instances" och "/etc/replication"
- Bläddra till /oak:index/damAssetLucene
- Lägg till en sträng[] egenskap med namnet includedPaths med ett värde "/content/dam"
- Spara
(Endast AEM6.1 och 6.2) Uppdatera indexet ntBaseLucene för att förbättra prestanda vid borttagning och flyttning av resurser:
-
Bläddra till /oak:index/ntBaseLucene/indexRules/nt:base/properties
-
Lägga till två nt:ostrukturerade noder slingResource och damResolvedPath under /oak:index/ntBaseLucene/indexRules/nt:base/properties
-
Ange egenskaperna nedan för noderna (där ordnade egenskaper och propertyIndex-egenskaper är av typen Boolean:
slingResource
name="sling:resource"
ordered=false
propertyIndex= true
type="String"
damResolvedPath
name="dam:resolvedPath"
ordered=false
propertyIndex=true
type="String"
-
På noden /oak:index/ntBaseLucene anger du egenskapen
reindex=true
-
Klicka på Save All
-
Övervaka error.log för att se när indexeringen är klar:
Omindexering har slutförts för index: [/oak:index/ntBaseLucene]
-
Du kan också se att indexeringen har slutförts genom att uppdatera noden /oak:index/ntBaseLucene i CRXDe eftersom egenskapen reindex skulle återgå till false
-
När indexeringen är klar går du tillbaka till CRXDe och anger type egenskap som ska inaktiveras för dessa två index
- /oak:index/slingResource
- /oak:index/damResolvedPath
-
Klicka på Save All
Inaktivera Lucene-textextrahering:
Om dina användare inte behöver kunna söka efter innehåll i resurser, till exempel genom att söka efter texten i PDF-dokument, kan du förbättra indexprestanda genom att inaktivera den här funktionen.
- Gå till Experience Manager package manager /crx/packmgr/index.jsp
- Överför och installera paketet nedan
Gissa totalt guess-total
När du skapar frågor som genererar stora resultatuppsättningar använder du guessTotal
så att du slipper använda mycket minne när du kör dem.
Kända fel known-issues
Stora filer large-files
Det finns två stora kända fel som rör stora filer i AEM. När filer når större storlekar än 2 GB kan synkronisering med vänteläge i kallt läge hamna i en situation där minnet är slut. I vissa fall förhindras att standby-synkronisering körs. I andra fall kraschar den primära instansen. Detta scenario gäller alla filer i Experience Manager som är större än 2 GB, inklusive innehållspaket.
På samma sätt kan det ta lite tid innan filen är helt beständig från cachen till filsystemet om filstorleken når 2 GB när ett delat S3-datalager används. Detta innebär att om du använder en binär replikering utan binärfiler kan det hända att binära data inte har befunnits beständiga innan replikeringen slutförs. Denna situation kan leda till problem, särskilt om det är viktigt att data är tillgängliga, till exempel i avlastningsscenarier.
Prestandatestning performance-testing
För varje Experience Manager driftsättning, upprätta ett system för prestandatestning som snabbt kan identifiera och lösa flaskhalsar. Här är några nyckelområden att fokusera på.
Nätverkstestning network-testing
Utför följande uppgifter för alla problem med nätverkets prestanda från kunden:
- Testa nätverksprestanda inifrån kundens nätverk
- Testa nätverksprestanda inifrån Adobe-nätverket. För AMS-kunder kan du arbeta med din CSE för att testa inifrån Adobe-nätverket.
- Testa nätverksprestanda från en annan åtkomstpunkt
- Genom att använda ett prestandatest för nätverk
- Testa mot dispatchern
Experience Manager instanstestning aem-instance-testing
För att minimera latens och uppnå hög genomströmning genom effektiv CPU-användning och lastdelning bör du övervaka prestandan hos Experience Manager -instansen regelbundet. Särskilt gäller följande:
- Kör belastningstester mot Experience Manager instance
- Övervaka uppladdningsprestanda och gränssnittsvarstider
Experience Manager Kontrollistor för resursprestanda aem-assets-performance-checklist
- Gör det möjligt för HTTPS att kringgå alla HTTP-trafiksniffare på företag.
- Använd en kabelanslutning för överföring av stora resurser.
- Ange optimala JVM-parametrar.
- Konfigurera ett datalager i filsystemet eller ett S3 DataStore.
- Inaktivera generering av underresurser. Om det är aktiverat skapar AEM en separat resurs för varje sida i en flersidig resurs. Var och en av dessa sidor är en enskild resurs som förbrukar mer diskutrymme, kräver versionshantering och ytterligare arbetsflödesbearbetning. Om du inte behöver separata sidor inaktiverar du generering av delresurser och sidextrahering.
- Möjliggör tillfälliga arbetsflöden.
- Justera Granite-arbetsflödesköerna för att begränsa antalet samtidiga jobb.
- Konfigurera ImageMagick för att begränsa resursförbrukningen.
- Ta bort onödiga steg från DAM Update Asset-arbetsflödet.
- Konfigurera arbetsflöde och versionsrensning.
- Optimera Lucene-indexkonfigurationen.
- Optimera index med de senaste servicepaketen och snabbkorrigeringarna. Kontakta Adobe kundsupport för eventuella ytterligare indexoptimeringar.
- Använd
guessTotal
för att optimera frågeprestanda. - Om du konfigurerar Experience Manager för att identifiera filtyper från filernas innehåll (genom att konfigurera Day CQ DAM Mime Type Service i Experience Manager Web Console) kan du överföra många filer samtidigt under icke-toppvärdesdagar eftersom åtgärden är resurskrävande.