Analizar los problemas de indexación de AEM

El artículo proporciona instrucciones para analizar consultas lentas, reindexar índices asíncronos y solucionar problemas de indexación en Adobe Experience Manager.

Descripción description

Entorno

Adobe Experience Manager

Problema/Síntomas

Cómo solucionar todos los problemas comunes de indexación

Resolución resolution

Análisis de consultas lentas

Ir a Herramientas > Operaciones > Tablero > Diagnóstico > Rendimiento de la consulta mostrará la lista de consultas lentas.

Consulte este documento para obtener detalles sobre cómo analizar las consultas lentas.

En los entornos que no son de producción, se puede instalar el paquete de herramientas de Adobe Consulting AEM Services (ACS) para proporcionar una herramienta de consulta explicativa para una mayor depuración.

Reindexación de índices asíncronos

Nota: La reindexación no suele resolver los problemas de las consultas, como las que no devuelven los resultados correctos. Además, la reindexación puede llevar mucho tiempo y debe evitarse a menos que esté cubierta por una razón que aparezca allí.

Cómo reindexar un índice asincrónico

  • Inicie sesión en su instancia de AEM

  • Abra http://aemhost:port/crx/de/index.jsp

  • Navegue hasta la definición del índice en /oak:index

  • Establezca una propiedad booleana reindex=true en el índice para reindexar y, a continuación, guarde. Cuando comience la indexación verá un mensaje de registro como el siguiente:

    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]
    
  • Mientras se realiza la reindexación, el atributo status de IndexStatsMBean tendría el valor en ejecución.

    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)
    
  • Puede confirmar que la indexación se ha completado comprobando su nodo de definición de índice. La propiedad reindexCount debería haberse incrementado y el booleano de reindexación debería establecerse en false.

    En el archivo de registro, si la indexación se ha completado correctamente, se mostrará la siguiente entrada:

    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
    
  • Si la reindexación no se completa y ha entrado en un bucle, consulte la sección siguiente titulada Análisis de la reindexación fallida.

  • La actividad de los índices asíncronos puede identificarse en el nivel INFO mediante la búsqueda en:

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

Problemas de rendimiento de indexación asíncrona

  1. Habilite el registro para validar el tiempo:

    Nivel de TRACE (solo en Oak 1.0.17 o posterior):

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

    Nivel de depuración:

    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
    

    Se generarían registros como estos que mostrarían el tiempo de indexación:

    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. Tome una serie de volcados de hilos y busque el hilo que contiene AsyncIndexUpdate en la pila para ver dónde se gasta la mayor parte del tiempo de indexación o si está esperando en algunos otros hilos. Para tomar volcados de hilos vea este artículo.

  3. Establezca la propiedad booleana saveDirectoryListing=true (solo si utiliza Oak 1.0.16, si es una versión posterior no es necesario) y establezca la propiedad excludePaths=[ /var, /etc/workflow/instances, /jcr:system] en el índice /oak:index/lucene OOTB para optimizarlo.

  4. Haga clic en Guardar todo.

  5. Cuando cree índices de propiedades lucene personalizados, asegúrese de establecer la propiedad saveDirectoryListing=true (Boolean) si usa Oak 1.0.16 y establecer la propiedad includedPaths (String[ ] ) para restringir su índice y que solo indexe ciertas rutas.

  6. Vaya a esta URL /system/console/configMgr/org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProviderService Copiar en lectura, Copiar en escritura (solo es seguro usarlo en Oak 1.0.18 y versiones posteriores) y "Recuperar archivos de índice" (solo en Oak 1.0.18 y versiones posteriores)

Análisis de reindexación fallida

  1. Cuando la indexación asíncrona falla, al comprobar la interfaz de usuario JMX de las estadísticas del indexador asíncrono (vínculo más abajo), verá que LastIndexedTime es una fecha y una hora antiguas: http://localhost:4502/system/console/jmx/org.apache.jackrabbit.oak%3Aid%3D11%2Cname%3D"async"%2Ctype%3D"IndexStats"

  2. Cuando la reindexación falla entra en un bucle 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. Si ve eso, debe habilitar el registro de nivel de depuración para org.apache.jackrabbit.oak.plugins.index

  4. La próxima vez que la indexación haga un bucle con el mensaje de registro anterior, un mensaje de registro de depuración sobre este daría más detalles de por qué la indexación stá fallando. A continuación, puede abordar el problema, ya sea un nodo dañado, la falta de un blob u otro problema.

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