Target

El objetivo de este artículo es tener detalles sobre cómo solucionar todos los problemas comunes de indexación. 

Análisis de consultas lentas

En Herramientas -> Operaciones -> Tablero -> Diagnóstico -> Rendimiento de la consulta se mostrará la lista de consultas lentas.  

Consulte este documento para obtener más detalles sobre el análisis de las consultas lentas.

En entornos sin producción, se puede instalar el paquete de herramientas ACS AEM para proporcionar una herramienta de consulta explicativa para una depuración posterior. Consulte esta documentación sobre esta herramienta.

Reindexación de los índices de sincronización

Nota:

Por lo general, la reindexación no resuelve los problemas de consulta, como las consultas que no devuelven los resultados correctos. Además, la reindexación puede tardar mucho tiempo (como se describe en la sección prácticas recomendadas sobre la indexación. Se debe evitar la reindexación a menos que se indique una razón).

Reindexar un índice asíncrono

  • Abra la aplicación web http://aemhost:port/crx/de/index.jsp e inicie sesión como administrador
  • Busque la definición de índice en /oak:index
  • Establezca una propiedad booleana reindex=true. Cuando se inicia la indexación, verá un mensaje de registro como este: 

23.06.2015 14:26:23.070 *INFO* [FelixStartLevel] org.apache.jackrabbit.oak.plugins.index.IndexUpdate La reindexación se realizará para los siguientes índices: [/oak:index/cqAcUUID, /oak:index/nodetype, /oak:index/deviceIdentificationMode, /oak:index/campaignpath, /oak:index/active, /oak:index/jcrFrozenMixinTypes]

  •  Durante el proceso de reindexación, el atributo “leader” de IndexStatsMBean tendrá el valor “status”        en el nodo de cluster “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 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 completada comprobando el nodo de definición de índice, la propiedad reindexCount debería haber sido incrementada y la propiedad reindex boolean debería ser falsa si la indexación se ha completado con éxito
23.06.2015 14:28:52.009 *INFO* [pool-8-thread-1] org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate Reindexing (async) completado para los índices: [/oak:index/counter*(708), /oak:index/authorizables*(159), /oak:index/cqPageLucene*(1913), /oak:index/ntBaseLucene*(444), /oak:index/cqTagLucene*(512), /oak:index/workflowDataLucene*(116)] en 30.36 s
  • Si la reindexación no se completa y ha entrado en un bucle, consulte la sección siguiente.

La actividad del índice asíncrono puede ser identificada a nivel INFO haciendo clic en org.apache.jackrabbit.plugins.index.IndexUpdate y org.apache.jackrabbit.plugins.index.AsyncIndexUpdate.

Problemas de rendimiento de indexación de Async

  • Habilite el registro para validar la temporización:

Nivel TRACE (solo en Oak 1.0.17 o posterior):

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

Nivel 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

Se generarían registros como este que muestran el momento de la indexación:

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] Índice encontrado para ser actualizado. Reapertura del IndexNode [tardó 150ms]
09.07.2015 08:13:45:248 *TRACE* [oak-lucene-0] org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier.perf [/oak:index/lucene] Copiado 0 archivos por un total de 0 B [tardó 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] Índice encontrado para ser actualizado. Reapertura de IndexNode [ha tardado 1581 ms]

  • Tome una serie de volcados de hilos y busque el hilo que contiene AsyncIndexUpdate en la pila para ver dónde se pasa la mayor parte del tiempo de indexación o si la indexación está esperando en otros hilos. Para realizar volcados de hilos vea este artículo.
  • Defina la propiedad booleana saveDirectoryListing=true (solo si utiliza Oak 1.0.16, si es una versión posterior, no es necesario) y defina la propiedad excludedPaths=[/var, /etc/workflow/instances, /jcr:system] en el índice /oak:index/lucene OOTB para optimizarla.
  • Haga clic en "Guardar todo"
  • Cuando cree índices de propiedades de lucene personalizados, asegúrese de establecer saveDirectoryListing=true (booleano) si utiliza Oak 1.0.16 y establezca la propiedad includedPaths (String[]) para restringir su índice a solo indexar determinadas rutas.

Vaya a esta URL /system/console/configMgr/org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProviderService “Copia en modo lectura”, “Copia en modo escritura” (solo para uso seguro en Oak 1.0.18 y posteriores) y “Recoger archivos de índice” (solo en Oak 1.0.18 y posteriores)

Analizando la Falla de Reindexación

  • Cuando la indexación asíncrona falla, al comprobar que las estadísticas del indexador asíncrono son las de la interfaz de usuario de JMX (enlace de abajo), verá que LastIndexedTime es una fecha y hora antiguas:

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

  • Además, cuando la reindexación falla, entra en un bucle como este:

08.01.2015 01:22:04.474 *INFO* [pool-9-thread-2] org.apache.jackrabbit.oak.plugins.index.IndexUpdate La reindexación se realizará para los siguientes índices [/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 La reindexación se realizará para los siguientes índices[/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 La reindexación se realizará para los siguientes índices[/oak:index/damFileSize, /oak:index/lucene, /oak:index/cqLastModified]

  • Si lo ve, entonces debería habilitar el registro de nivel de depuración para org.apache.jackrabbit.oak.plugins.index
  • La próxima vez que el bucle de indexación con el mensaje de registro por encima de un mensaje de registro de depuración por encima daría más detalles de por qué la indexación está fallando.  A continuación, puedes abordar el problema, ya sea un nodo corrupto, falta blob u otro problema.

Esta obra está autorizada con arreglo a la licencia de Reconocimiento-NoComercial-CompartirIgual 3.0 Unported de Creative Commons.  Los términos de Creative Commons no cubren las publicaciones en Twitter™ y Facebook.

Avisos legales   |   Política de privacidad en línea