Problema

Si ha hecho un uso extensivo de permisos/ACL en CQ o CRX, esto puede afectar al rendimiento de las búsquedas en CRX porque, cuando se recuperan los resultados de la búsqueda, estos se deben filtrar según los permisos del repositorio CRX.

En los casos en los que esto sea un problema, si realiza volcados de hilos verá que hay mucha contención de bloqueos relacionados con los trazos de pila que contienen la clase CacheEntryCollector.

Para ver si tiene suficientes permisos (nodos rep:ACE) establecidos en su repositorio para afectar enormemente al rendimiento, haga lo siguiente:

  1. Vaya a la aplicación web CRX /crxde e inicie sesión como administrador
  2. Haga clic en Herramientas => Consulta
  3. Seleccione “XPath” como Tipo
  4. En la casilla de consulta, introduzca la siguiente consulta: 
    //Elemento(*,rep:ACL) ordenado por @jcr:score
  5. Haga clic en la opción para ejecutar

Si esto resulta en más de 5000 nodos, vea a continuación los detalles sobre cómo mejorar el rendimiento del sistema.

Resolución

1. En primer lugar, investigue si puede o no reducir el número total de ACL.  Aquí hay algunos consejos que pueden ayudar:

  • Tiene sentido revisar sus ACL definidos y ver si alguno de ellos es superfluo o innecesario.  Muchas veces puede reducir el número de ACL añadiendo un grupo que contenga permisos compartidos y asignando otros grupos como miembros del mismo.
  • Si está definiendo permisos / ACE directamente contra los usuarios, es posible que pueda reducir en gran medida el número de ACE que está utilizando eliminando dichos permisos.  A continuación, debe reemplazarlos con permisos que se establecen en lugar de grupos compartidos.

Nota: Si no sabe cómo ver las ACL en CRX, vea este artículo.  También puede buscar ACL utilizando la búsqueda mencionada anteriormente //elementos(*,rep:ACL) ordenada por @jcr:score.

2. Una vez que reduzca el número total de ACE, si todavía tiene un problema de rendimiento, vea si puede implementar una capa de almacenamiento en caché en su código de aplicación para los resultados de búsqueda que se recuperan con más frecuencia.

3. Por último, para aumentar el tamaño de la caché de ACL.

  1. Instale el último paquete de corrección CRX 2.2.0.56 o superior (compruebe el paquete compartido si está disponible en público; de lo contrario, solicítelo a través de un vale a soporte)
  2. Añada el siguiente parámetro JVM para cambiar el tamaño de la caché:
    -Dorg.apache.jackrabbit.core.security.authorization.acl.CachingEntryCollector.maxsize=10000

    10000 por ejemplo si su número actual de nodo rep:ACE era un poco inferior a 10000.


Se aplica a

CRX 2.2

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