Prestandajusteringsguide för Adobe Experience Manager Assets assets-performance-tuning-guide

En Experience Manager Assets-installation innehåller flera 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 bra grund som gör att distributionen av Experience Manager Assets kan uppfylla förväntningarna på prestanda, skalbarhet och tillförlitlighet.

Dåliga prestanda i Experience Manager Assets kan påverka användarupplevelsen kring interaktiva prestanda, bearbetning av resurser, hämtningshastighet 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 som du kan använda för att identifiera och åtgärda prestandaproblem innan de påverkar användarna.

Plattform platform

Experience Manager stöds på flera plattformar, men Adobe har funnit det bästa stödet för inbyggda verktyg i Linux och Windows, vilket ger optimala prestanda och enklare implementering. Du bör helst distribuera ett 64-bitars operativsystem för att uppfylla de höga minneskraven för en Experience Manager Assets-distribution. Precis som med andra Experience Manager-distributioner bör du implementera tarMK där det är möjligt. Även om StjärmMK inte kan skalas bortom en enda författarinstans, fungerar det bättre än MongoMK. Du kan lägga till instanser för TjärMK-avlastning för att öka arbetsflödets bearbetningskraft för din Experience Manager Assets-distribution.

Tillfällig mapp temp-folder

Om du vill förbättra överföringstiderna använder du högpresterande lagringsutrymme 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 till exempel en tillfällig enhet 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 använder du en drivrutin från tredje part för att skapa en RAM-enhet eller bara använda lagring med höga prestanda, till exempel 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 bin/start-skriptet för Experience Manager:

-Djava.io.tmpdir=/mnt/aem-tmp

Java-konfiguration java-configuration

Java-version java-version

Adobe rekommenderar att Experience Manager Assets distribueras på Java 8 för optimala prestanda.

JVM-parametrar jvm-parameters

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 Assets-användare. Dessutom kan konfigurering av parametrarna maxCachedBinarySize och cacheSizeInMB bidra till att maximera prestanda. Ange maxCachedBinarySize till den minsta filstorleken 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 bör du minska den konfigurerade maxstorleken för buffrat bildcache 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 högsta heap (- Xmx param) på 5 GB, en Oak BlobCache som är inställd på 1 GB och dokumentcache som är 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. Vid https://host:port/system/console/configMgr/com.day.cq.dam.core.impl.cache.CQBufferedImageCache anger du 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).

Om du använder en sling:osgiConfig-nod för att konfigurera den här egenskapen från Experience Manager 6.1 SP1 måste du ange datatypen till 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 Assets storleksguide.

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 ett befintligt arkiv till ett S3-datalager på en kundplats:

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. Mer information om hur du identifierar nätverksflaskhalsar finns i Assets storleksguide. Information om hur du utvärderar nätverksprestanda genom att analysera nätverkstopologi finns i Assets-nätverkshänsyn.

Din nätverksoptimeringsstrategi är i första hand beroende av den tillgängliga bandbredden 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 saker att tänka på:

  • Beroende på vilken instanstyp du har (liten, måttlig, stor) kontrollerar du att du har tillräcklig nätverksbandbredd för instansen Experience Manager. Lämplig bandbreddsallokering är särskilt viktig om Experience Manager ligger på AWS.
  • Om din Experience Manager-instans finns på AWS kan du dra nytta av en flexibel skalförändringsprincip. Ö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 krypterar HTTP-trafik, vilket kan påverka överföringen av filer negativt eller till och med skada filer under överföringen.
  • Stora filöverföringar: Se till att användarna har kabelanslutna anslutningar till nätverket (WiFi-anslutningar blir snabbt mättade).

Arbetsflöden workflows

Övergående arbetsflöden transient-workflows

Ange arbetsflödet DAM Update Asset till Transient om 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.

  1. Navigera till /miscadmin i Experience Manager-distributionen på https://[aem_server]:[port]/miscadmin.

  2. Expandera Tools > Workflow > Models > dam.

  3. Öppna DAM Update Asset. Gå till fliken Page på den flytande verktygspanelen och klicka sedan på Page Properties.

  4. Markera Transient Workflow och klicka på OK.

    note note
    NOTE
    Vissa funktioner har inte stöd för tillfälliga arbetsflöden. Om din Assets-distribution kräver dessa funktioner ska du inte konfigurera tillfälliga arbetsflöden.

Om tillfälliga arbetsflöden inte kan användas kör du regelbundet arbetsflödesrensning för att ta bort arkiverade DAM Update Asset-arbetsflöden, så att systemprestanda inte försämras.

Vanligtvis kör du rensningsarbetsflödena varje vecka. I resurskrävande scenarier, till exempel vid omfattande tillgångsinmatning, 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 till exempel har kört flera icke-tillfälliga arbetsflöden (som skapar arbetsflödesinstansnoder) kan du köra ACS AEM Commons 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 kör Experience Manager 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 DAM Update Asset arbetsflöden, vilket gör att gränssnittets svarstid minskar och hindrar 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:

  1. Åtkomst till https://[aem_server]:[port]/system/console/slingevent för Experience Manager Author.

  2. Klicka på Edit i varje arbetsflödeskö som är relevant för implementeringen, till exempel Granite Transient Workflow Queue.

  3. Uppdatera värdet för Maximum Parallel Jobs och klicka på Save.

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 och 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.

DAM-uppdateringskonfiguration dam-update-asset-configuration

Arbetsflödet DAM Update Asset innehåller en komplett serie steg som är konfigurerade för uppgifter, till exempel Dynamic Media PTIFF-generering och Adobe InDesign Server-integrering. 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 DAM Update Asset 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.

Om du kör arbetsflödet DAM Update Asset intensivt kan du öka storleken på fildatalagret avsevärt. Resultaten från ett experiment som utfördes av Adobe har visat att datastorleken kan öka med ungefär 400 GB om cirka 500 arbetsflöden utförs inom 8 timmar.

Det är en tillfällig ökning och datalagret återställs till den ursprungliga storleken när du har kört skräpinsamlingsaktiviteten för datalagret.

Vanligtvis körs skräpinsamlingsaktiviteten för datalager varje vecka tillsammans med andra schemalagda underhållsaktiviteter.

Om du har begränsat diskutrymme och kör DAM Update Asset arbetsflöden intensivt bör du överväga att schemalägga skräpinsamlingsaktiviteten oftare.

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-teknik för att helt och hållet överlåta bildbearbetning. Dessutom kan du distribuera Brand Portal som inte bara tar över ansvaret för återgivningsgenerering från infrastrukturen Experience Manager, utan även 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 policy.xml -filen 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 avsnittet policymap i policy.xml för att begränsa de här resurserna.

<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 ImageMagick:s tillfälliga mapp i filen configure.xml (eller genom att ange miljövariabeln MAGICK_TEMPORARY_PATH) till en diskpartition som har tillräckligt med utrymme och IOPS.

CAUTION
En felaktig konfiguration kan göra servern instabil om ImageMagick använder allt tillgängligt diskutrymme. De principändringar som krävs för att bearbeta stora filer med ImageMagick kan påverka prestanda för Experience Manager. Mer information finns i Installera och konfigurera ImageMagick.
NOTE
ImageMagick policy.xml- och configure.xml-filerna är tillgängliga på /usr/lib64/ImageMagick-*/config/ i stället för på /etc/ImageMagick/.Mer information om var konfigurationsfilerna finns i ImageMagick-dokumentationen.

Om du använder Experience Manager på Adobe Managed Services (AMS) kan du kontakta Adobe kundsupport om du tänker bearbeta många stora PSD- eller PSB-filer. Samarbeta med Adobe kundsupportrepresentant för att implementera de bästa metoderna för driftsättningen av AMS och för att välja de bästa möjliga verktygen och modellerna för Adobe egna format. Experience Manager kan inte bearbeta PSB-filer med hög upplösning som är större än 30000 x 23000 pixlar.

XMP tillbakaskrivning xmp-writeback

XMP återföring uppdaterar den ursprungliga resursen när metadata ändras i Experience Manager, vilket ger följande resultat:

  • Själva tillgången har ändrats
  • En version av resursen skapas
  • DAM Update Asset körs mot resursen

De listade resultaten förbrukar avsevärda resurser. Adobe rekommenderar därför att XMP avaktiveras om det inte behövs. Mer information finns i XMP tillbakaskrivning.

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

  1. Välj vilken publiceringsinstans du vill använda för att länka replikeringarna till
  2. På den publiceringsinstansen lägger du till replikeringsagenter som pekar på andra publiceringsinstanser
  3. På var och en av dessa replikeringsagenter aktiverar du"Vid mottagning" på fliken"Utlösare"
NOTE
Adobe rekommenderar inte att resurser aktiveras automatiskt. Om det behövs rekommenderar Adobe att du gör detta som det sista steget i ett arbetsflöde, vanligtvis DAM-uppdateringsresurs.

Sökindex search-indexes

Installera de senaste Service Packs och prestandarelaterade snabbkorrigeringar eftersom de ofta innehåller uppdateringar av systemindex. Se tips för prestandajustering för vissa indexoptimeringar.

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 anpassade index. Mer information om bästa praxis för frågor och index finns i Bästa praxis 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 prestandan för Experience Manager Assets. Uppdatera indexkonfigurationerna för att förbättra omindexeringstiden:

  1. Öppna CRXDe /crx/de/index.jsp och logga in som administrativ användare.
  2. Gå till /oak:index/lucene.
  3. Lägg till en String[]-egenskap excludedPaths med värdena /var, /etc/workflow/instances och /etc/replication.
  4. Gå till /oak:index/damAssetLucene. Lägg till egenskapen String[] includedPaths med värdet /content/dam. Spara ändringar.

Om dina användare inte behöver göra fulltextsökning av resurser, till exempel söka igenom text i PDF-dokument, kan du inaktivera det. Du kan förbättra indexets prestanda genom att inaktivera fulltextindexering. Så här inaktiverar du textrahering av Apache Lucene:

  1. Öppna Package Manager i gränssnittet Experience Manager.
  2. Överför och installera det paket som finns på disable_indexingbinarytextextraction-10.zip.

Gissa totalt guess-total

När du skapar frågor som genererar stora resultatuppsättningar ska du använda parametern guessTotal för att undvika att 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 Experience Manager. När filer når större storlekar än 2 GB kan synkronisering med kalla väntelägen 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 för 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 filen är 2 GB stor 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 datatillgängligheten är viktig.

Prestandatestning performance-testing

För varje Experience Manager-distribution måste du skapa ett prestandatestningssystem 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 distributionstestning aem-deployment-testing

För att minimera latens och uppnå hög genomströmning genom effektiv CPU-användning och lastdelning ska du regelbundet övervaka prestandan för din Experience Manager-distribution. Särskilt gäller följande:

  • Kör lasttester mot distributionen Experience Manager.
  • Övervaka uppladdningsprestanda och hur användargränssnittet påverkas.

Experience Manager Assets resultatchecklista och påverkan av resurshanteringsaktiviteter 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.
  • Driftsätt med Java 8.
  • Ange optimala JVM-parametrar.
  • Konfigurera ett datalager i filsystemet eller ett S3-datalager.
  • Inaktivera generering av underresurser. Om det är aktiverat skapas en separat resurs för varje sida i en flersidig resurs när du AEM arbetsflödet. 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.
  • Aktivera 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örbrukning.
  • Ta bort onödiga steg från arbetsflödet DAM Update Asset.
  • Konfigurera arbetsflöde och versionsrensning.
  • Optimera index med de senaste Service Pack-uppdateringarna och snabbkorrigeringarna. Kontakta Adobe kundsupport för eventuella ytterligare indexoptimeringar.
  • Använd gissningTotal för att optimera frågeprestanda.
  • Om du konfigurerar Experience Manager att identifiera filtyper från filinnehållet (genom att aktivera Day CQ DAM Mime Type Service i AEM Web Console), överför många filer samtidigt under icke-toppade timmar eftersom det är resurskrävande.
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2