Utilice la funcionalidad de colección de residuos para eliminar cualquier archivo no utilizado en el Almacén de datos. CRX es compatible con el almacén de datos de Jackrabbit, véase http://wiki.apache.org/jackrabbit/DataStore. Por defecto, CRX utiliza el FileDataStore, pero también soporta DbDataStore.
Para llevar a cabo la colección de residuos:
- Inicie sesión como administrador.
- En la consola CRX, haga clic en Configuración del repositorio.
- Haga clic Colección de basura en el Almacén de datos.
- Seleccione una o más de las siguientes opciones:
Opción | Descripción |
---|---|
Ejecute primero la colección de residuos de la memoria | Ejecutar primero la colección de basura de la memoria principal (también conocida como recolección de basura en pilas). Este proceso expulsa los objetos que todavía están en la memoria principal, pero que ya no están referenciados. La colección de basura del almacén de datos solo recupera los elementos que ya no están en la memoria principal. |
Eliminación de elementos no utilizados | La selección de esta opción significa que todos los archivos no utilizados se eliminan del almacén de datos. Si esta opción está desactivada, solo se actualiza la última fecha de modificación de los elementos utilizados, pero no se eliminan los archivos. Si varios repositorios independientes comparten un almacén de datos o si varios clústeres distintos comparten un almacén de datos, no habilite esta opción. En su lugar, elimine los elementos antiguos manualmente o utilice un script. (Por ejemplo, eliminar archivos que tengan más de una semana de antigüedad después de ejecutar la colección de residuos del almacén de datos en cada repositorio). Un clúster es un repositorio; esto significa que puede habilitar Eliminar elementos no utilizados cuando utilice múltiples instancias de clúster que compartan un repositorio. |
Uso de un análisis del gestor de persistencia | Cuando esta opción está activada, el proceso utiliza un análisis del gestor de persistencia de bajo nivel si el gestor de persistencia admite esta opción. La selección de esta opción acelera el proceso de colección de basura, pero podría ralentizar las operaciones simultáneas. Si la opción está desactivada, se utiliza un algoritmo de desplazamiento de nodos de nivel superior. |
- Haga clic en Ejecutar.
Colección de residuos en un entorno agrupado
Almacenamiento de datos compartidos
Cuando se utiliza un clúster CRX, la colección de basura de Data Store se puede ejecutar desde cualquier nodo de clúster.
Almacenamiento de datos de cluster
Cuando utilice el almacén de datos del clúster (opción de configuración del almacén de datos ClusterDataStore), ejecute la colección de residuos en todos los nodos del clúster por separado.
Almacenamiento de datos multirrepositorio
Si varios repositorios distintos utilizan el mismo almacén de datos al mismo tiempo (como las instancias de autor y publicación), no utilice la opción Eliminar. En cambio, el proceso es el siguiente:
- Haga una copia de seguridad de sus datos.
- Inicie sesión en CRX como administrador.
- Ejecute la colección de basura del almacén de datos sin ninguna de las opciones seleccionadas (asegúrese de que la opción Eliminar elementos no utilizados no esté marcada)
. - Dentro de cinco días, ejecútelo en todos los repositorios que comparten un almacén de datos. Es posible establecer el retardo en 0, sin embargo, esto aumenta la carga en el sistema de archivos. Además, es posible ejecutar el proceso simultáneamente en todos los repositorios, pero esto aumenta el I/O en el sistema de ficheros que contiene el almacén de datos. Una vez finalizado este proceso, los archivos del almacén de datos tienen una nueva fecha de última modificación.
- Si el proceso dura más de cinco días, aumente el número de días al borrar (7 por defecto). Adobe recomienda que utilice un margen de dos días.
- Para listar los archivos de más de siete días usando la siguiente línea de comandos:
find repository/datastore/* -mtime +7 -type f - Este comando imprime el número de bytes que se pueden guardar:
find repository/datastore/* -mtime +7 -type f -exec ls -l {} \; | awk '{ s+=$5 } END { print s }' - Elimine todos los archivos que tengan más de siete días utilizando la siguiente línea de comandos. ATENCIÓN: Si la colección de la residuos del almacén de datos no se ha realizado en los últimos días, se eliminan los archivos que aún se necesitan.
find repository/datastore/* -mtime +7 -type f -exec rm {} \;
Inicio de la colección de basura dentro de una aplicación
Para ejecutar la colección de residuos manualmente, utilice el siguiente código:
GarbageCollector gc; SessionImpl si = (SessionImpl)session; gc = si.createDataStoreGarbageCollector(); // opcional (si desea implementar una barra de progreso / salida):
gc.setScanEventListener(this); gc.scan(); gc.stopScan(); // puede ser un botón separado, si múltiples repositorios usan el mismo almacén de datos: gc.deleteUnused(); Cambios en la colección de basura del almacén de datos desde CQ5.5 en adelante (se aplica a crx 2.3.15 o posterior)
A partir de CQ5.5 el CRX que proporciona el repositorio es un servicio OSGi. El CRX está registrado en el Registro de servicios de OSGi como servicio MBean. Este MBean está disponible en la consola JMX que expone los atributos y operaciones de colección de basura del almacén de datos.
- El ui para ejecutar la colección de basura de datastore es http://<host>:<port>/system/console/jmx/com.adobe.granite%3Atype%3DRepository
- La nueva interfaz de usuario solo tiene una opción de eliminación de elementos no utilizados que se puede establecer como verdadero o falso en función del caso de uso. Un ejemplo de comando curl con la opción false es [1].
- Las otras opciones
- Ejecutar colección de residuos de la memoria primero no forma parte de la colección de residuos del almacén de datos de la interfaz de usuario y está disponible en http://<host>:<port>/system/console/memoryusage.
- Se ha eliminado Utilizar un análisis del gestor de persistencia.
- Ejecutar colección de la basura de la memoria primero se ha trasladado a http://<host>:<port>/system/console/memoryusage
- El retraso de tiempo predeterminado es de 10. Para cualquier cambio, modificar un bean propiedad dataStoreGarbageCollectionDelay. El comando curl a 15 se muestra en [2].
[1] curl -u admin:admin -X POST --data delete=false -H "Referer: http://<host>:<port>/system/console/jmx/com.adobe.granite%3Atype%3DRepository" http://<host>:<port>/system/console/jmx/com.adobe.granite%3Atype%3DRepository/op/runDataStoreGarbageCollection/java.lang.Boolean
[2] curl -u admin:admin -X POST --data value=15 -H "Referer: http://<host>:<port>/system/console/jmx/com.adobe.granite%3Atype%3DRepository" http://<host>:<port>/system/console/jmx/com.adobe.granite%3Atype%3DRepository/a/DataStoreGarbageCollectionDelay
AEM 5.6.1 (CRX 2.4.30+)
La nueva colección rápida e improvisada de residuos en el almacén de datos ha sido implementada en 5.6.1. y ahora está habilitada de forma predeterminada (runDataStoreGarbageCollection). Para ejecutar el método antiguo de colección de residuos del almacén de datos, utilice runDataStoreClassicGarbageCollection que ejecuta la colección de residuos del almacén de datos evitando el uso de la recolección de residuos TarPM optimizada.
- Si está ejecutando la colección de residuos rápida (runDataStoreGarbageCollection), asegúrese de no detenerla con stopDataStoreGarbageCollection() hasta que haya instalado la corrección 3241 de 5.6.1 (consulte a continuación la URL y el archivo Léame del Uso compartido de paquetes).
Descargue Hotfix 3241 desde el paquete compartido haciendo clic aquí.
Descargar