Felsöka ekindex troubleshooting-oak-indexes

CAUTION
AEM 6.4 har nått slutet på den utökade supporten och denna dokumentation är inte längre uppdaterad. Mer information finns i teknisk supportperiod. Hitta de versioner som stöds här.

Långsam omindexering slow-re-indexing

AEM interna omindexeringsprocess samlar in databasdata och lagrar dem i Oak-index för att ge stöd för prestandafrågor. I undantagsfall kan processen bli långsam eller till och med fastna. Den här sidan fungerar som en felsökningsguide som hjälper dig att identifiera om indexeringen är långsam, hitta orsaken och lösa problemet.

Det är viktigt att skilja mellan omindexering som tar en otillräckligt lång tid och omindexering som tar lång tid eftersom det indexerar enorma mängder innehåll. Den tid det tar att indexera innehåll skalas till exempel med mängden innehåll, så stora produktionsdatabaser tar längre tid att indexera om än små utvecklingsdatabaser.

Se Metodtips för frågor och indexering om du vill ha mer information om när och hur du indexerar om innehåll.

Inledande identifiering initial-detection

Inledande identifiering av långsam indexering kräver granskning av IndexStats JMX MBeans. Gör följande på den påverkade AEM:

  1. Öppna webbkonsolen och klicka på fliken JMX eller gå till https://<host>:<port>/system/console/jmx (t.ex. http://localhost:4502/system/console/jmx).

  2. Navigera till IndexStats Mönster.

  3. Öppna IndexStats MBeans for " async" och " fulltext-async".

  4. Kontrollera om Klar tidsstämpel och LastIndexTime tidsstämpeln är mindre än 45 minuter från den aktuella tiden.

  5. För MBean, om tidsvärdet (Klar eller LastIndexedTime) är längre än 45 minuter från den aktuella tiden. Indexjobbet misslyckas eller tar för lång tid. Detta gör att asynkrona index blir inaktuella.

Indexeringen pausas efter en tvingad avstängning indexing-is-paused-after-a-forced-shutdown

En framtvingad avstängning medför AEM att asynkron indexering avbryts i upp till 30 minuter efter omstarten och kräver normalt ytterligare 15 minuter för att slutföra den första omindexeringsprocessen i totalt cirka 45 minuter (återkoppling till Inledande identifiering 45 minuter). Om du misstänker att indexering har pausats efter en tvingad avstängning:

  1. För det första ska du avgöra om AEM stängdes av på ett tvingat sätt (den AEM processen tvångsdödades eller ett strömavbrott inträffade) och därefter starta om.

    • AEM kan granskas för detta ändamål.
  2. Om den framtvingade avstängningen inträffar kommer AEM automatiskt att avbryta omindexering i upp till 30 minuter vid omstart.

  3. Vänta ca 45 minuter tills AEM återupptar vanliga asynkrona indexeringsåtgärder.

Trådpoolen har överlästs thread-pool-overloaded

NOTE
För AEM 6.1 ska du se till att AEM 6.1 CFP 11 är installerat.

I undantagsfall kan den trådpool som används för att hantera asynkron indexering bli överbelastad. För att isolera indexeringsprocessen kan en trådpool konfigureras för att förhindra att andra AEM stör Oaks förmåga att indexera innehåll i tid. För att göra detta bör du:

  1. Definiera en ny isolerad trådpool för Apache Sling Scheduler som ska användas för asynkron indexering:

    • På den berörda AEM-instansen går du till AEM OSGi Web Console>OSGi>Configuration>Apache Sling Scheduler eller går till https://<host>:<port>/system/console/configMgr (t.ex. http://localhost:4502/system/console/configMgr)
    • Lägg till en post i fältet Tillåtna trådpooler med värdet eke.
    • Klicka på Spara längst ned till höger för att spara ändringarna.

    chlimage_1-119

  2. Kontrollera att den nya trådpoolen för Apache Sling Scheduler är registrerad och visas i webbkonsolen för Apache Sling Scheduler Status.

    chlimage_1-120

Observationskön är full observation-queue-is-full

Om för många ändringar och implementeringar görs i databasen på kort tid kan indexeringen fördröjas på grund av en fullständig observationskö. Börja med att fastställa om observationskön är full:

  1. Gå till webbkonsolen och klicka på fliken JMX eller gå till https://<host>:<port>/system/console/jmx (t.ex. http://localhost:4502/system/console/jmx)

  2. Öppna MBean för Oak Repository-statistik och kontrollera om det finns några ObservationQueueMaxLength värdet är större än 10 000.

    • Vid normal användning måste det här maxvärdet alltid minskas till noll (särskilt i per second -avsnittet) så verifiera att ObservationQueueMaxLengthSekundärstatistik är 0.
    • Om värdena är 10 000 eller fler och ökar stadigt innebär det att minst en (eventuellt fler) kö inte kan bearbetas så fort nya ändringar (implementeringar) inträffar.
    • Varje observationskö har en gräns (10 000 som standard) och om kön når den gränsen försämras hanteringen.
    • När du använder MongoMK försämras prestanda för intern ekacache när kölängden blir stor. Denna korrelation kan ses vid en ökad missRate för DocChildren i Consolidated Cache statistik MBean.
  3. För att undvika att överskrida tillåtna gränser för observationsköer bör du:

Identifiera och åtgärda en fast omindexeringsprocess identifying-and-remediating-a-stuck-re-indexing-process

Omindexering kan betraktas som"helt fast" under två förhållanden:

  • Omindexeringen är mycket långsam, till den punkt där inga större framsteg rapporteras i loggfiler om antalet noder som har gått igenom.

    • Om det t.ex. inte finns några meddelanden under en timme, eller om förloppet är så långsamt att det tar en vecka eller mer att slutföra.
  • Omindexering fastnar i en oändlig slinga om upprepade undantag förekommer i loggfilerna (till exempel OutOfMemoryException) i indexeringstråden. Upprepningen av samma undantag i loggen anger att Oak försöker indexera samma sak flera gånger, men misslyckas i samma problem.

Så här identifierar och korrigerar du en fast omindexeringsprocess:

  1. För att identifiera orsaken till den fastande indexeringen måste följande information samlas in:

  2. När du har samlat in all information som beskrivs i steg 1 startar du om AEM.

    • Om du startar om AEM kan problemet åtgärdas vid hög samtidig belastning (spill i observationskön eller liknande).
    • Om en omstart inte löser problemet kan du öppna ett problem med Adobe kundtjänst och tillhandahålla all information som samlats in i steg 1.

Säkert avbryter asynkron omindexering safely-aborting-asynchronous-re-indexing

Omindexering kan avbrytas (avbrytas innan den är klar) via async, async-reindexoch f ulltext-async indexera köer ( IndexStats Mbean). Mer information finns också i dokumentationen för Apache Oak på Så här avbryter du omindexering. Ta dessutom hänsyn till att

  • Omindexeringen av egenskapsindexen Lucene och Lucene kan avbrytas eftersom de är naturligt asynkrona.
  • Omindexeringen av Oak-egenskapsindex kan endast avbrytas om omindexering initierades via PropertyIndexAsyncReindexMBean.

Så här avbryter du omindexering:

  1. Identifiera det IndexStats MBean som styr det omindexeringsintervall som behöver stoppas.

    • Navigera till rätt IndexStats MBean via JMX-konsolen genom att antingen gå till AEM OSGi Web Console>Main>JMX eller https://<host>:<port>/system/console/jmx (t.ex. http://localhost:4502/system/console/jmx)

    • Öppna IndexStats MBean baserat på det omindexeringsfält som du vill stoppa ( async, async-reindex, eller fulltext-async)

      • Titta på egenskapen async för att identifiera lämpligt intervall och därmed instansen IndexStats MBean. Egenskapen "async" kommer att innehålla körfältets namn: async, async-reindex, eller fulltext-async.
      • Fältet är också tillgängligt genom att du öppnar AEM Index Manager i kolumnen "Async". Om du vill komma åt indexhanteraren går du till Åtgärder > Diagnostik > Indexhanteraren.

    chlimage_1-121

  2. Anropa abortAndPause() kommando på lämplig IndexStats MBean.

  3. Markera indexdefinitionen på ekv för att förhindra att indexeringen återupptas när indexeringsintervallet återupptas.

    • När en befintlig index, ange egenskapen reindex till false

      • /oak:index/someExistingIndex@reindex=false
    • Eller, för new index, antingen:

      • Ange att type-egenskapen ska vara inaktiverad

        • /oak:index/someNewIndex@type=disabled
      • eller ta bort indexdefinitionen helt

    Genomför ändringarna i databasen när de är klara.

  4. Slutligen kan du återuppta asynkron indexering på det avbrutna indexeringsfältet.

    • I IndexStats MBean som utfärdade abortAndPause() i steg 2 anropar du resume()-kommando.

Förhindra långsam omindexering preventing-slow-re-indexing

Det är bäst att indexera om under tysta perioder (t.ex. inte under en stor innehållsimport) och helst under underhållsperioder när AEM är känd och kontrollerad. Se även till att omindexeringen inte sker under andra underhållsaktiviteter.

recommendation-more-help
6a71a83d-c2e0-4ce7-a6aa-899aa3885b56