Nettoyage de révision revision-cleanup
Présentation introduction
Chaque mise à jour du référentiel crée une révision du contenu. Par conséquent, avec chaque mise à jour, la taille du référentiel augmente. Les anciennes révisions doivent être nettoyées pour libérer des ressources de disque. Cela est important pour éviter une croissance incontrôlée du référentiel. Cette fonctionnalité de maintenance est appelée Nettoyage des révisions. Elle est disponible en tant que routine hors ligne depuis Adobe Experience Manager (AEM) 6.0.
Une version en ligne de cette fonctionnalité, appelée Nettoyage des révisions en ligne, a été introduite dans AEM 6.3 et les versions ultérieures. Par rapport au nettoyage des révisions hors ligne où l’instance AEM doit être arrêtée, le nettoyage des révisions en ligne peut être exécuté pendant que l’instance AEM est en ligne. Le nettoyage des révisions en ligne est activé par défaut. Il s’agit de la méthode recommandée pour effectuer un nettoyage des révisions.
Remarque : Regardez la vidéo pour découvrir comment utiliser le nettoyage des révisions en ligne.
Le processus de nettoyage des révisions se compose de trois phases : estimation, compression et nettoyage. L’estimation détermine si la phase suivante (compression) doit être exécutée ou non en fonction de la quantité d’espace mémoire pouvant être récupérée. Lors de la phase de compression, les segments et les fichiers tar sont réécrits sans aucun contenu inutilisé. La phase de nettoyage supprime ensuite les anciens segments, y compris l’espace mémoire qu’ils peuvent contenir. Le mode hors ligne peut généralement libérer de l’espace, car le mode en ligne doit tenir compte de la plage de travail d’AEM, qui empêche la collecte de segments supplémentaires.
Pour plus d’informations sur le nettoyage des révisions, cliquez sur les liens suivants :
Vous pouvez aussi consulter la documentation Oak officielle.
Quand utiliser le nettoyage des révisions en ligne plutôt que le nettoyage des révisions hors ligne ? when-to-use-online-revision-cleanup-as-opposed-to-offline-revision-cleanup
Le nettoyage des révisions en ligne est la méthode recommandée pour effectuer un nettoyage des révisions. L’utilisation du nettoyage des révisions hors ligne doit être limitée à des cas exceptionnels, par exemple, avant d’effectuer une migration vers un nouveau format de stockage ou si l’Assistance clientèle d’Adobe vous demande de le faire.
Comment exécuter le nettoyage des révisions en ligne how-to-run-online-revision-cleanup
Le nettoyage des révisions en ligne est configuré par défaut pour s’exécuter automatiquement une fois par jour sur les instances de création et de publication AEM. Il vous suffit de définir la fenêtre de maintenance pendant une période où l’activité des utilisateurs et utilisatrices est la moins importante. Vous pouvez configurer la tâche de nettoyage des révisions en ligne comme suit :
-
Dans la fenêtre principale, accédez à Outils - Opérations - Tableau de bord - Maintenance ou sur :
https://serveraddress:serverport/libs/granite/operations/content/maintenance.html
-
Déplacez le curseur au-dessus de la fenêtre de maintenance quotidienne, puis cliquez sur l’icône Paramètres.
-
Saisissez les valeurs souhaitées (répétition, heure de début, heure de fin) et cliquez sur Enregistrer.
Autrement, si vous désirez effectuer le nettoyage manuellement, procédez comme ceci :
-
Accédez à Outils - Opérations - Tableau de bord- Maintenance ou directement sur
https://serveraddress:serverport/libs/granite/operations/content/maintenance.html
. -
Cliquez sur la fenêtre de maintenance quotidienne.
-
Déplacez le curseur au-dessus de l’icône Nettoyage des révisions.
-
Cliquez sur Exécuter.
Exécuter le nettoyage des révisions en ligne après le nettoyage des révisions hors ligne running-online-revision-cleanup-after-offline-revision-cleanup
Le processus de nettoyage des révisions récupère les anciennes révisions par génération. Cela signifie que chaque fois que vous exécutez le nettoyage des révisions, une nouvelle génération est créée et conservée sur le disque. Il existe cependant une différence entre les deux types de nettoyage des révisions : le processus hors ligne conserve une seule génération, alors que le processus en ligne en conserve deux. Voici donc ce qui se passe lorsque vous exécutez le nettoyage des révisions en ligne après le nettoyage hors ligne :
- Après la première exécution du nettoyage des révisions en ligne, la taille du référentiel double. Cela est dû au fait que deux générations sont à présent conservées sur le disque.
- Au cours des exécutions ultérieures, la taille du référentiel augmentera temporairement pendant la création de la génération, puis reviendra à la taille qui était la sienne après la première exécution, étant donné que le processus de nettoyage des révisions en ligne récupère la génération précédente.
En outre, gardez à l’esprit que, selon le type et le nombre de validations, chaque génération peut avoir une taille différente de la précédente, de sorte que la taille finale peut varier d’une exécution à l’autre.
Il est donc recommandé d’opter pour une taille de disque au moins deux à trois fois supérieure à celle estimée initialement pour le référentiel.
Modes de compression complète et partielle full-and-tail-compaction-modes
AEM 6.5 s’accompagne de deux nouveaux modes pour la phase de compression du processus de nettoyage des révisions en ligne :
- Le mode Compression complète réécrit tous les segments et fichiers tar dans l’ensemble du référentiel. La phase de nettoyage suivante peut donc libérer la quantité maximale d’espace mémoire dans le référentiel. Étant donné que la compression complète affecte l’ensemble du référentiel, une quantité de ressources système et un temps considérables sont nécessaires pour son exécution. La compression complète correspond à la phase de compression dans AEM 6.3.
- Le mode Compression des révisions les plus récentes ne réécrit que les segments et fichiers tar les plus récents dans le référentiel. Les segments et les fichiers tar les plus récents sont ceux qui ont été ajoutés depuis la dernière exécution de compression complète ou partielle. La phase de nettoyage suivante ne peut donc que libérer l’espace mémoire dans la partie récente du référentiel. Étant donné que la compression partielle ne concerne qu’une partie du référentiel, elle consomme beaucoup moins de ressources système qu’une compression complète et se révèle bien plus rapide.
Ces modes de compression constituent un compromis entre efficacité et consommation des ressources : bien que la compression partielle soit moins efficace, elle a également moins d’impact sur le fonctionnement normal du système. En revanche, la compression complète est plus efficace, mais a davantage de répercussions sur les opérations normales du système.
AEM 6.5 s’enrichit également d’un mécanisme de déduplication du contenu plus efficace au cours de la compression, ce qui a pour effet de réduire l’empreinte du référentiel sur le disque.
Les deux graphiques ci-dessous présentent les résultats des tests réalisés en laboratoire interne. Ils illustrent la réduction des délais d’exécution moyens et de l’empreinte moyenne sur le disque dans AEM 6.5 par rapport à AEM 6.3 :
Configuration de la compression complète et partielle how-to-configure-full-and-tail-compaction
La configuration par défaut exécute la compression partielle les jours de la semaine et la compression complète le dimanche. Vous pouvez modifier cette configuration par défaut en utilisant la nouvelle valeur de configuration full.gc.days
de la tâche de maintenance RevisionCleanupTask
.
Lorsque vous configurez la valeur full.gc.days
, la compression complète est exécutée les jours définis dans la valeur, la compression partielle étant exécutée les jours non définis. Par exemple, si vous configurez la compression complète pour qu’elle s’exécute le dimanche, la compression partielle s’exécute du lundi au samedi. Si, par exemple, vous configurez la compression complète pour qu’elle s’exécute tous les jours de la semaine, la compression partielle ne s’exécute pas du tout.
Considérez également que :
- La compression des révisions les plus récentes est moins efficace et a un impact moindre sur les opérations normales du système. Elle est donc destinée à être exécutée pendant les jours ouvrables.
- La compression complète est plus efficace, mais a davantage de répercussions sur les opérations normales du système. Elle est donc destinée à être exécutée pendant les jours ouvrables.
- La compression complète et la compression partielle doivent être planifiées pour fonctionner pendant les heures creuses.
Résolution des problèmes troubleshooting
Lors de l’utilisation des nouveaux modes de compression, gardez à l’esprit les points suivants :
- Vous pouvez surveiller l’activité d’entrée/sortie (E/S), par exemple : opérations d’E/S, processeur en attente d’E/S, taille de la file d’attente de validation. Cela permet de déterminer si le système devient lié aux E/S et nécessite une mise à niveau.
- La tâche
RevisionCleanupTaskHealthCheck
indique le statut d’intégrité global du nettoyage des révisions en ligne. Le fonctionnement est le même que dans AEM 6.3 et ne fait pas la distinction entre compression complète et partielle. - Les messages du journal contiennent des informations pertinentes sur les modes de compression. Par exemple, lorsque le nettoyage des révisions en ligne démarre, les messages de journal correspondants indiquent le mode de compression. De plus, dans certains cas, le système rétablit la compression complète lorsqu’une compression partielle était prévue. Les messages du journal indiquent cette modification. Les exemples de journaux ci-dessous indiquent le mode de compression et comment passer de la compression complète à la compression partielle :
TarMK GC: running tail compaction
TarMK GC: no base state available, running full compaction instead
Limites connues known-limitations
Dans certains cas, l’alternance entre le modes de compression complète et partielle retarde le processus de nettoyage. Plus précisément, le référentiel s’accroît après une compression complète (sa taille double). L’espace supplémentaire sera récupéré lors de la compression partielle suivante, lorsque le référentiel sera inférieur à la taille de compression pré-complète. Les exécutions de tâches de maintenance parallèles doivent également être évitées.
Il est recommandé d’opter pour une taille de disque au moins deux à trois fois supérieure à celle estimée initialement pour le référentiel.
Foire aux questions sur le nettoyage des révisions en ligne online-revision-cleanup-frequently-asked-questions
Remarques concernant la mise à niveau AEM 6.5 aem-upgrade-considerations
Migration vers Oak Segment Tar migrating-to-oak-segment-tar
Exécution du nettoyage des révisions en ligne running-online-revision-cleanup
Surveillance du nettoyage des révisions en ligne monitoring-online-revision-cleanup
Dépannage du nettoyage des révisions en ligne troubleshooting-online-revision-cleanup
Dépannage basé sur les messages d’erreur troubleshooting-based-on-error-messages
Le fichier error.log sera détaillé si des incidents se produisent pendant le processus de nettoyage des révisions en ligne. La matrice suivante vise à expliquer les messages les plus courants et à fournir des solutions possibles :
Comment exécuter le nettoyage des révisions hors ligne how-to-run-offline-revision-cleanup
Adobe propose un outil appelé Oak-run pour effectuer le nettoyage des révisions. Il peut être téléchargé à l’emplacement suivant :
https://repo1.maven.org/maven2/org/apache/jackrabbit/oak-run/
L’outil est un fichier jar exécutable qui peut être exécuté manuellement pour compresser le référentiel. Le processus est appelé nettoyage des révisions hors ligne, car le référentiel doit être arrêté pour pouvoir exécuter correctement l’outil. Veillez à planifier le nettoyage en fonction de votre fenêtre de maintenance.
Pour obtenir des instructions sur la façon d’augmenter la performance du processus de nettoyage, reportez-vous à la section Amélioration de la performance du nettoyage des révisions hors ligne.
-
Assurez-vous toujours de disposer d’une sauvegarde récente de l’instance AEM.
Arrêtez AEM.
-
(Facultatif) Utilisez l’outil pour rechercher les anciens points de contrôle :
code language-xml java -jar oak-run.jar checkpoints install-folder/crx-quickstart/repository/segmentstore
-
(Facultatif) Supprimez ensuite les points de contrôle non référencés :
code language-xml java -jar oak-run.jar checkpoints install-folder/crx-quickstart/repository/segmentstore rm-unreferenced
-
Exécutez la compression et attendez qu’elle soit terminée :
code language-xml java -jar -Dsun.arch.data.model=32 oak-run.jar compact install-folder/crx-quickstart/repository/segmentstore
Amélioration des performances du nettoyage des révisions hors ligne increasing-the-performance-of-offline-revision-cleanup
L’outil oak-run présente plusieurs fonctionnalités qui visent à améliorer les performances du processus de nettoyage des révisions et à réduire la fenêtre de maintenance autant que possible.
La liste comprend plusieurs paramètres de ligne de commande, comme décrit ci-dessous :
-
-mmap. Vous pouvez le définir sur true ou false. S’il est défini sur true, l’accès mappé à la mémoire est utilisé. S’il est défini sur false, l’accès aux fichiers est utilisé. S’il n’est pas spécifié, l’accès mappé à la mémoire est utilisé sur les systèmes 64 bits et l’accès aux fichiers est utilisé sur les systèmes 32 bits. Sous Windows, l’accès aux fichiers standard est toujours appliqué et cette option est ignorée. Ce paramètre remplace le paramètre -Dtar.memoryMapped.
-
-Dupdate.limit. Définit le seuil de vidage d’une transaction temporaire sur le disque. La valeur par défaut est 10000.
-
-Dcompress-interval. Nombre d’entrées du mappage de compression à conserver jusqu’à la compression du mappage actuel. La valeur par défaut est 1000000. Si une mémoire de tas suffisante est disponible, vous devez augmenter cette valeur sur un nombre encore plus élevé pour accélérer le débit. Ce paramètre a été supprimé dans Oak version 1.6 et est sans effet.
-
-Dcompaction-progress-log. Nombre de nœuds compactés qui sont consignés. La valeur par défaut est 150000, ce qui signifie que les 150 000 premiers nœuds compacts figurent dans le journal pendant l’opération. Utilisez-la avec le paramètre suivant décrit ci-dessous.
-
-Dtar.PersistCompactionMap. Définissez ce paramètre sur true pour utiliser l’espace disque plutôt que la mémoire disponible pour la persistance du mappage de compression. Nécessite l’outil oak-run 1.4 ou une version ultérieure. Pour plus de détails, reportez-vous à la question 3 dans la section FAQ sur le nettoyage des révisions hors ligne. Ce paramètre a été supprimé dans Oak version 1.6 et est sans effet.
-
–force. Force la compression et ignore toute version de magasin de segments sans correspondance.
--force
met à niveau le magasin de segments vers la version la plus récente, qui est incompatible avec les versions précédentes d’Oak. Sachez également qu’aucun déclassement n’est possible. En règle générale, vous devez utiliser ces paramètres avec précaution et uniquement si vous savez comment les utiliser.Exemple des paramètres utilisés :
java -Dupdate.limit=10000 -Dcompaction-progress-log=150000 -Dlogback.configurationFile=logback.xml -Xmx8g -jar oak-run-*.jar checkpoints <repository>
Autres méthodes de déclenchement du nettoyage des révisions additional-methods-of-triggering-revision-cleanup
Outre les méthodes présentées ci-dessus, vous pouvez déclencher le mécanisme de nettoyage des révisions à l’aide de la console JMX comme suit :
- Ouvrez la console JMX en accédant à http://localhost:4502/system/console/jmx.
- Cliquez sur le MBean RevisionGarbageCollection.
- Dans la fenêtre suivante, cliquez sur startRevisionGC(), puis sur Appeler pour démarrer la tâche de nettoyage de la mémoire.