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

Este artigo explica como analisar consultas lentas, reindexar índices assíncronos e como solucionar problemas de indexação de AEM.

Descrição description

Ambiente

Experience Manager

Problema/Sintomas

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

Resolução resolution

Análise de consultas lentas

Indo 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 ACS AEM pode ser instalado para fornecer uma ferramenta de consulta de explicação para depuração adicional.

Reindexação de índices assíncronos

Nota: 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 levar 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

  • Abrir 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:

    code language-none
    23.06.2015 14:26:23.070 *INFO* [ FelixStartLevel]
    org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindexing will be performed for following indexes:
    [ /oak:index/cqAcUUID, /oak:index/nodetype, /oak:index/deviceIdentificationMode, /oak:index/campaignpath, /oak:index/active, /oak:index/jcrFrozenMixinTypes]
    
  • Enquanto a reindexação estiver em andamento, o atributo "status" de IndexStatsMBean terá o valor "running".

    code language-none
    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 Indexing
    report    - /oak:index/counter
    (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 o 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:

    code language-none
    23.06.2015 14:28:52.009 *INFO* [ pool-8-thread-1]
    org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate Reindexing (async) completed for indexes:
    [ /oak:index/counter*(708), /oak:index/authorizables*(159),
    /oak:index/cqPageLucene*(1913), /oak:index/ntBaseLucene*(444),
    /oak:index/cqTagLucene*(512), /oak:index/workflowDataLucene*(116)]
    in 30.36 s
    
  • Se a reindexação não for concluída e entrar em um loop, consulte 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 com:

    code language-none
    org.apache.jackrabbit.plugins.index.IndexUpdate, and
    org.apache.jackrabbit.plugins.index.AsyncIndexUpdate
    

Problemas de desempenho de indexação assíncrona

  1. Habilite o registro para validar o tempo:

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

    code language-none
    org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditorContext.perf
    

    Nível DEBUG:

    code language-none
    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 esses seriam gerados mostrando o tempo de indexação:

    code language-none
    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 Document<stored,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]
    
  2. Faça uma série de despejos de thread e procure a thread 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 algumas outras threads. Para remover despejos de thread, consulte este artigo.

  3. Defina a propriedade booleana saveDirectoryListing=true (somente se estiver usando o 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.

  4. Clique em Salvar tudo.

  5. Ao criar índices de propriedade do lucene personalizados, defina saveDirectoryListing=true (Booleano) se estiver usando Oak 1.0.16 e defina includedPaths (String[ ] ) para restringir seu índice para indexar apenas determinados caminhos.

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

  1. 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"

  2. Quando a reindexação falha, ela entra em um loop como este:

    code language-none
    08.01.2015 01:22:04.474 *INFO* [ pool-9-thread-2]
    org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindexing will be performed for following indexes
    [ /oak:index/damFileSize, /oak:index/lucene, /oak:index/cqLastModified] 08.01.2015 01:52:08.365 *INFO* [ pool-9-thread-5]
    org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindexing will be performed for following indexes
    [ /oak:index/damFileSize, /oak:index/lucene, /oak:index/cqLastModified] 08.01.2015 09:33:23.306 *INFO* [ pool-9-thread-5]
    org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindexing will be performed for following indexes
    [ /oak:index/damFileSize, /oak:index/lucene, /oak:index/cqLastModified]
    
  3. Caso veja isso, você deve ativar o log de nível de depuração para org.apache.jackrabbit.oak.plugins.index

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

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