Analisi dei problemi di indicizzazione di AEM

Ultimo aggiornamento: 2023-04-11

Descrizione

Ambiente
Experience Manager

Problema/Sintomi
Come risolvere tutti i problemi comuni di indicizzazione?

Risoluzione

Analisi delle query lente

Andando a Strumenti / Operazioni / Dashboard / Diagnosi / Prestazioni query mostrerà l'elenco delle query lente.

Per informazioni dettagliate sull’analisi delle query lente, consulta questo documento.

In ambienti non di produzione, è possibile installare il pacchetto di strumenti ACS AEM per disporre di uno strumento di query esplicativo per ulteriori operazioni di debug.
 Reindicizzazione degli indici asincroni

Nota:

La reindicizzazione in genere non risolve i problemi relativi alle query, ad esempio le query che non restituiscono i risultati corretti. La reindicizzazione inoltre può richiedere molto tempo, per cui deve essere evitata a meno che non sia coperta da uno dei motivi elencati.

Reindicizzare un indice asincrono

  • Accedi all’istanza AEM
  • Apri http://aemhost:port/crx/de/index.jsp
  • Sfoglia la definizione dell'indice sotto /oak:index
  • Imposta una proprietà booleana reindex=true sull'indice per reindicizzarlo, quindi salva. All’avvio dell’indicizzazione viene visualizzato un messaggio di registro simile al seguente:

23.06.2015 14:26:23.070 *INFO* FelixStartLevel org.apache.jackrabbit.oak.plugins.index.IndexUpdate La reindicizzazione verrà eseguita per i seguenti indici: /oak:index/cqAcUUID, /oak:index/nodetype, /oak:index/deviceIdentificationMode, /oak:index/campaignpath, /oak:index/active, /oak:index/jcrFrozenMixinTypes

  • Mentre la reindicizzazione è in corso, l'attributo 'status' di IndexStatsMBean avrà il valore 'in esecuzione'.

 23.06.2015 14:26:23.517 *INFO* FelixStartLevel org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindicizzazione traversed #10000 /jcr:system/jcr:versionStorage/c8/5f…23.06.2015 14:28:51.999 *INFO* pool-8-thread-1 org.apache.jackrabbit.oak.plugins.index.IndexAggiorna rapporto di indicizzazione - /oak:index/counter*(708) - /oak:index/authorizables*(159) - /oak:index/cqPageLucene*(11 913) - /oak:index/ntBaseLucene*(444) - /oak:index/cqTagLucene*(512) - /oak:index/workflowDataLucene*(116)

  • Puoi confermare che l'indicizzazione completata controllando il nodo di definizione dell'indice, la proprietà reindexCount dovrebbe essere stata incrementata e la reindicizzazione booleana deve essere impostata su "false"

    Nel file di registro, se l’indicizzazione è stata completata correttamente, verrà visualizzata la voce seguente

23.06.2015 14:28:52.009 *INFO* pool-8-thread-1 org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate Reindicizzazione (async) completata per gli indici: /oak:index/counter*(708), /oak:index/authorizables*(159), /oak:index/cqPageLucene*(1913), /oak:index/ntBaseLucene*(444), /oak:index/cqLucene*(Tag 12), /oak:index/workflowDataLucene*(116) in 30.36 s

  • Se la reindicizzazione non è completa ed è passata in un ciclo, vedi la sezione sotto intitolata Analisi della reindicizzazione non riuscita.

L'attività dell'indice asincrono può essere identificata a livello di INFO raggruppando org.apache.jackrabbit.plugins.index.IndexUpdate e org.apache.jackrabbit.plugins.index.AsyncIndexUpdate.
 Problemi relativi alle prestazioni dell’indicizzazione asincrona

  • Abilita la registrazione per convalidare la tempistica:

Livello di TRACCIA (solo in Oak 1.0.17 o versioni successive):

org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditorContext.perf

Livello di DEBUG:

org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate

org.apache.jackrabbit.oak.plugins.index.IndexUpdate

org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditor

org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker

org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditorContext

org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier

Questa operazione genera dei registri che mostrano i tempi di indicizzazione, in modo simile al seguente:

09.07.2015 08:13:38.401 *TRACE* 192.168.193.1 143644018387 POST /content/dam/site/test.createasset.html HTTP/1.1 org.apache.jackrabbit.oak.jcr.operations.writes session-1017777 7 Aggiunta del nodo /content/dam/site/test/jackrabbit-oak7.png 09.07.2015 08:13:38.583 *TRACE* 192.168.193.1 143644018387 POST /content/dam/site/test.createasset.html HTTP/1.1 org.apache.jackrabbit.oak.jcr.operations.writes session-1017777 7 save 09.07.2015 08:13:42.823 *DEBUG* pool-9-thread-1 org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate Esecuzione dell'attività dell'indice in background async 09.07.2015 08:13:42.963 *TRACE* pool-9-thread-1 org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditor /oak:index/lucene Documento indicizzato per /content/dam/site/test/jackrabbit-oak7.png/jcr:content/related is Documentmemorizzato,indicizzato,omitNorms,indexOptions=DOCS_ONLY:path:/content/dam/site/test/jackrabbit-oak7.png/jcr:content/related indexed,tokenized:fulltext:correlato 09.07.2015 08:13:43.579 *DEBUG* rapporto di indicizzazione pool-9-thread-1 org.apache.jackrabbit.oak.plugins.index.IndexUpdate

  • /oak:index/siteDamIndex(2)
  • /oak:index/lucene(15)

09.07.2015 08:13:43.779 *TRACE* oak-lucene-0 org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker.perf /oak:index/siteDamIndex Index trovato da aggiornare. La riapertura dell'IndexNode ha richiesto 150 ms 09.07.2015 08:13:45.248 *TRACE* oak-lucene-0 org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier.perf /oak:index/lucene Copiato 0 file per un totale di 0 B ha richiesto 1465ms 09.07.2015 08:13:45.248 *TRACE* oak-lucene-0 org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier /oak:index/lucene apertura a distanza di soli file segment.gen 09.07.2015 08:13:45.361 *TRACE* oak-lucene-0 org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker.perf /oak:index/lucene Index. La riapertura dell'IndexNode ha richiesto 1581ms

  • Prendi una serie di dump di thread e cerca il thread contenente AsyncIndexUpdate nello stack per vedere dove viene trascorsa la maggior parte del tempo di indicizzazione o se l'indicizzazione è in attesa su altri thread. Per acquisire le immagini thread, consulta questo articolo.
  • Imposta la proprietà booleana saveDirectoryListing=true (solo se utilizzi Oak 1.0.16, se la versione successiva non è necessaria) e imposta la proprietà excludedPaths=/var, /etc/workflow/instances, /jcr:system sull'indice OOTB /oak:index/lucene per ottimizzarlo.
  • Fai clic su “Salva tutto”
  • Quando crei indici di proprietà lucene personalizzati, assicurati di impostare saveDirectoryListing=true (booleano) se utilizzi Oak 1.0.16 e imposta la proprietà includedPaths (String) per limitare l'indice a indicizzare solo determinati percorsi.

Vai a questo URL /system/console/configMgr/org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProviderService "Copy on Read", "Copy on Write" (sicuro solo da utilizzare in Oak 1.0.18 e versioni successive) e "Prefetch Index Files" (solo in Oak 1.0.18 e versioni successive)

Analisi della reindicizzazione non riuscita

  • Quando l'indicizzazione asincrona non riesce, quando controlli le statistiche dell'indicizzatore asincrono dell'interfaccia JMX (link qui sotto), vedrai che LastIndexedTime è una data e un'ora precedenti:

http://localhost:4502/system/console/jmx/org.apache.jackrabbit.oak%3Aid%3D11%2Cname%3D"async"%2Ctype%3D"IndexStats"

  • Inoltre, quando la reindicizzazione ha esito negativo, entra in un loop simile al seguente:

08.01.2015 01:22:04.474 *INFO* pool-9-thread-2 org.apache.jackrabbit.oak.plugins.index.IndexUpdate La reindicizzazione verrà eseguita per i seguenti indici /oak:index/damFileSize, /oak:index/lucene, /oak:index/cqLastModified08.01.201 01:52:08.365 *INFO* pool-9-thread-5 org.apache.jackrabbit.oak.plugins.index.IndexUpdate La reindicizzazione verrà eseguita per i seguenti indici /oak:index/damFileSize, /oak:index/lucene, /oak:index/cqLastModified08.01.201 09:33:23.306 *INFO* pool-9-thread-5 org.apache.jackrabbit.oak.plugins.index.IndexUpdate La reindicizzazione verrà eseguita per i seguenti indici /oak:index/damFileSize, /oak:index/lucene, /oak:index/cqLastModified

  • Se vedi questo, abilita la registrazione a livello di debug per org.apache.jackrabbit.oak.plugins.index

  • Al successivo loop dell’indicizzazione con relativo messaggio di registro, verrà visualizzato anche un messaggio di registro di debug nella parte superiore con ulteriori dettagli sul motivo del fallimento dell’indicizzazione.  In questo modo puoi risolvere il problema, sia che si tratti di un nodo corrotto, di un BLOB mancante o di altro.

In questa pagina