Análise de problemas de indexação do AEM

Descrição

Ambiente
Experience Manager

Problema/Sintomas
Como solucionar todos os problemas comuns de indexação?

Resolução

Análise de consultas lentas

Ir para Ferramentas / Operações / Painel / Diagnóstico / Desempenho da Consulta mostrará a lista de consultas lentas.

Consulte este documento para obter detalhes sobre a análise de consultas lentas.

Em ambientes não relacionados à produção, o pacote de ferramentas do AEM ACS pode ser instalado para fornecer uma ferramenta de consulta de explicação para depuração adicional.

 Reindexação de índices assíncronos

Observação:

A reindexação normalmente não resolve problemas de consulta, como consultas que não retornam os resultados corretos. Além disso, a reindexação pode demorar muito tempo A reindexação deve ser evitada, a menos que seja feita por uma das razões a seguir.


Como reindexar um índice assíncrono

  • Faça logon na sua instância do AEM
  • Abra http://aemhost:port/crx/de/index.jsp
  • Navegue até a definição de índice em /oak:index
  • Defina uma propriedade booleana reindex=true no índice para reindexar e salve. Quando a indexação começar, você verá uma mensagem de log como esta:

23.6.2015 14:26:23.070 *INFO* FelixStartLevel org.apache.jackrabbit.oak.plugins.index.IndexUpdate A reindexação será executada para os seguintes índices: /oak:index/cqAcUUID, /oak:index/nodetype, /oak:index/deviceIdentificationMode, /oak:index/campaignpath, /oak:index/ative, /oak:index/jcrFrozenMixinTypes

  • Enquanto a reindexação estiver em andamento, o atributo 'status' de IndexStatsMBean terá o valor 'running'.

 23.6.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 Indexing report - /oak:index/coun*(708) - /oak:index/authorizables*(159) - /oak:index/cqPageLucene* 1913) - /oak:index/ntBaseLucene*(444) - /oak:index/cqTagLucene*(512) - /oak:index/workflowDataLucene*(116)

  • Você pode confirmar que a indexação foi concluída verificando seu nó de definição de índice, a propriedade reindexCount deve ter sido incrementada e o booleano de reindexação deve ser definido como "false"

    No arquivo de log, se a indexação for concluída com êxito, a seguinte entrada será exibida

23.6.2015 14:28:52.009 *INFO* pool-8-thread-1 org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate Reindexing (async) concluído para índices: /oak:index/count*(708), /oak:index/authorizables*(159), /oak:index/cqPageLucene*(1913), /oak:index/ntBaseLucene*(444), /oak:index/cqTagLucene\ *(512), /oak:index/workflowDataLucene*(116) em 30,36 s

  • Se a reindexação não completar e entrar em um loop, veja a seção abaixo intitulada Análise de reindexação com falha.

A atividade de índice assíncrona pode ser identificada no nível INFO ao continuar org.apache.jackrabbit.plugins.index.IndexUpdate e org.apache.jackrabbit.plugins.index.AsyncIndexUpdate.
 Problemas de desempenho de indexação assíncrona

  • Habilite o registro para validar o tempo:

Nível TRACE (somente no Oak 1.0.17 ou posterior):

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

Nível 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

Logs como este seriam gerados mostrando o tempo de indexação:

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-1017 77 Adição do nó /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-1017 09.07.2015 08:13:42.823 *DEBUG* pool-9-thread-1 org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate Tarefa de índice em segundo plano de execução assíncrona 09.07.2015 08:13:42.963 *TRACE* pool-9-thread-1 org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditor /oak:index/lucene Documento indexado para /content/dam/site/test/jackrabbit-oak7.png/jcr:content/related é Documentarmazenado,indexado,omitNorms,indexOptions=DOCS_ONLY:path:/content/dam/site/test/jackrabbit-oak7.png/jcr:content/related indexed,tokenized:fulltext:relacionadas com 09.07.2015 08:13:43.579 *DEBUG* pool-9-thread-1 org.apache.jackrabbit.oak.plugins.index.IndexUpdate Relatório de indexação

  • /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 Índice encontrado para ser atualizado. A reabertura do IndexNode levou 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 Copied 0 arquivos totalizando 0 B levaram 1465ms 09.07.2015 08:13:45.248 *TRACE* oak-lucene-0 org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier /oak:index/lucene abrindo segmentos de arquivos somente remotos.gen 09.07.2015 08:13:45.361 *TRACE* oak-lucene-0 org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker.perf /oak:index/lucene Índice encontrado para ser atualizado. A reabertura do IndexNode levou 1581ms

  • Pegue uma série de despejos de encadeamento e procure o encadeamento que contém AsyncIndexUpdate na pilha para ver onde a maior parte do tempo de indexação é gasto ou se a indexação está aguardando alguns outros encadeamentos. Para remover despejos de thread, consulte este artigo.
  • Defina a propriedade Booleana saveDirectoryListing=true (somente se estiver usando Oak 1.0.16, se a versão posterior não for necessária) e defina a propriedade excludedPaths=/var, /etc/workflow/instances, /jcr:system no índice /oak:index/lucene OOTB para otimizá-lo.
  • Clique em “Salvar tudo”
  • Ao criar índices de propriedade personalizados do lucene, certifique-se de definir saveDirectoryListing=true (Boolean) se estiver usando o Oak 1.0.16 e definir a propriedade includedPaths (String) para restringir seu índice para indexar apenas determinados caminhos.

Ir para este URL /system/console/configMgr/org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProviderService "Copiar na Leitura", "Copiar na Gravação" (somente seguro para uso no Oak 1.0.18 e posterior) e "Arquivos de Indexação de Pré-busca" (somente no Oak 1.0.18 e posterior)

Análise de reindexação com falha

  • Quando a indexação assíncrona falha, ao verificar as estatísticas do Indexador assíncrono na interface JMX (link abaixo), você verá que LastIndexedTime é uma data e hora antigas:

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

  • Além disso, quando a reindexação falha, ela entra em um loop como este:

08.01.2015 01:22:04.474 *INFO* pool-9-thread-2 org.apache.jackrabbit.oak.plugins.index.IndexUpdate A reindexação será executada para os seguintes índices /oak:index/damFileSize, /oak:index/lucene, /oak:index/cqLastModified08.01.20 15 01:52:08.365 *INFO* pool-9-thread-5 org.apache.jackrabbit.oak.plugins.index.IndexUpdate A reindexação será executada para os seguintes índices /oak:index/damFileSize, /oak:index/lucene, /oak:index/cqLastModified08.01.20 15 09:33:23.306 *INFO* pool-9-thread-5 org.apache.jackrabbit.oak.plugins.index.IndexUpdate A reindexação será executada para os seguintes índices /oak:index/damFileSize, /oak:index/lucene, /oak:index/cqLastModified

  • Caso veja isso, você deve ativar o log de nível de depuração para org.apache.jackrabbit.oak.plugins.index

  • Na próxima vez que a indexação fizer um loop com a mensagem de log acima de uma mensagem de log de depuração, ela fornecerá mais detalhes sobre por que a indexação está falhando.  Em seguida, você pode resolver o problema, seja um nó corrompido, blob ausente ou outro problema.

Nesta página