Analisi dei problemi di indicizzazione di AEM

Descrizione description

Ambiente
Experience Manager

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

Risoluzione resolution

Analisi delle query lente

Andando a Strumenti / Operazioni / Dashboard / Diagnosi / Prestazioni delle query verrà visualizzato 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 fornire 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. Inoltre, la reindicizzazione può richiedere molto tempo. La reindicizzazione 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
  • Passare alla definizione dell'indice in /oak:index
  • Imposta una proprietà booleana reindex=true sull’indice da reindicizzare, 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/jcrFrozenMixin Types

  • Quando la reindicizzazione è in corso, l’attributo "status" di IndexStatsMBean avrà il valore "running".

23.06.2015 14:26:23.517 *INFO* FelixStartLevel org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindexing 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.IndexUpdate Rapporto di indicizzazione - /oak:index/counter*(708) - /oak:index/authorizables*(159) - /oak:index/cqPageLucene*(1913) - /oak:index/ntBaseLucene*(444) - /oak:index/cqTagLucene*(512) - /oak:index/workflowDataLucene*(116)

  • Puoi confermare che l’indicizzazione è stata completata verificando il nodo di definizione dell’indice, dove la proprietà reindexCount deve 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 Reindexing (async) completato per gli indici: /oak:index/counter*(708), /oak:index/authorizables*(159), /oak:index/cqPageLucene*(1913), /oak:index/ntBaseLucene*(444), /oak:index/cqtag Lucene*(512), /oak:index/workflowDataLucene*(116) in 30,36 s

  • Se la reindicizzazione non è completa ed è entrata in un loop, vedi la sezione seguente con titolo Analisi della reindicizzazione non riuscita.

L’attività dell’indice asincrono può essere identificata a livello di INFO eseguendo il comando grep su  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 1436444018387 POST /content/dam/site/test.createasset.html HTTP/1.1 org.apache.jackrabbit.oak.jcr.operations.writes session-101777 Adding node /content/dam/site/test/jackrabbit-oak7.png
09.07.2015 08:13:38.583 \*TRACE\* 192.168.193.1 1436444018387 POST /content/dam/site/test.createasset.html HTTP/1.1 org.apache.jackrabbit.oak.jcr.operations.writes session-101777 save
09.07.2015 08:13:42.823 \*DEBUG\* pool-9-thread-1 org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate Running background index task async
09.07.2015 08:13:42.963 \*TRACE\* pool-9-thread-1 org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditor /oak:index/lucene Indexed document for /content/dam/site/test/jackrabbit-oak7.png/jcr:content/related is Documentstored,indexed,omitNorms,indexOptions=DOCS_ONLY:path:/content/dam/site/test/jackrabbit-oak7.png/jcr:content/related indexed,tokenized:fulltext:related
09.07.2015 08:13:43.579 \*DEBUG\* pool-9-thread-1 org.apache.jackrabbit.oak.plugins.index.IndexUpdate Indexing report
- /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 found to be updated. Reopening the IndexNode took 150ms
09.07.2015 08:13:45.248 \*TRACE\* oak-lucene-0 org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier.perf /oak:index/lucene Copied 0 files totaling 0 B took 1465ms
09.07.2015 08:13:45.248 \*TRACE\* oak-lucene-0 org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier /oak:index/lucene opening remote only file segments.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 found to be updated. Reopening the IndexNode took 1581ms
  • Acquisisci una serie di immagini thread e cerca il thread contenente AsyncIndexUpdate nello stack per vedere dove viene impiegato il 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, per le versioni successive non è necessario) e 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 personalizzati con proprietà Lucene, assicurati di impostare saveDirectoryListing=true (Boolean) se utilizzi Oak 1.0.16 e di impostare la proprietà includedPaths (String) per limitare l’indicizzazione solo a determinati percorsi.

Vai a questo URL  /system/console/configMgr/org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProviderService  "Copy on Read" (Copia su lettura), "Copy on Write" (Copia su scrittura) (utilizzabile solo in Oak 1.0.18 e versioni successive) e "Prefetch Index Files" (Preacquisizione dei file di indice) (solo in Oak 1.0.18 e versioni successive)

Analisi della reindicizzazione non riuscita

  • Quando l’indicizzazione asincrona ha esito negativo e verifichi le statistiche dell’indicizzatore asincrono nell’interfaccia utente di JMX (collegamento qui sotto), puoi notare 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.2015 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.2015 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 visualizzi questo codice, 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.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f