L’exécution de la compression hors ligne Tar est lente sur des référentiels Oak volumineux et entraîne un phénomène appelé « OutOfMemoryException ». Il est impossible de suivre la progression. Il arrive que la compression hors ligne augmente la taille du référentiel une fois exécutée.

Environnement

Adobe Experience Manager 6.x

Oak 1.2.x et 1.4.x

Résolution

Saisissez la commande suivante :

sudo -u crx nohup /usr/java/latest/bin/java -Dtar.memoryMapped=true -Doak.compaction.eagerFlush=true -server -Xmx30g -Dcompaction-progress-log=5000000
-Dlogback.configurationFile=logback-compaction.xml -Dcompress-interval=150000000 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dumps
-jar oak-run-1.2.16-R1750358.jar compact /path/to/segmentstore >> oak-tar-compact-a0.log 2>>oak-tar-error-a0.log

Remarque : pour certains des paramètres ci-dessus, il est nécessaire d’ajuster le chemin.

Quelques nouveaux paramètres sont disponibles dans les versions sous Oak 1.2.17 pour AEM6.1 et 1.4.4 pour AEM6.2 ou des versions ultérieures :

  • -Dlogback.configurationFile=logback-compaction.xml - Ceci enregistre le processus de compression. Vous devez ajouter le fichier logback-compaction.xml au même emplacement que le fichier jar sous Oak.

logback-compaction.xml :

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
 
  <appender name="STDERR" class="ch.qos.logback.core.FileAppender">
    <file>/mnt/dumps/compaction.log</file>
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>
 
  <logger name="org.apache.jackrabbit.oak.plugins.segment.Compactor" level="DEBUG"/>
 
  <root level="warn">
    <appender-ref ref="STDERR" />
  </root>
</configuration>
  • -Doak.compaction.eagerFlush=true - Il s’agit du nouvel indicateur permettant au compresseur d’utiliser des transactions prolongées. Vous éviterez ainsi une exception due à un manque de mémoire.

Suivre la progression :

compaction.log :

18:18:34.531 [main] WARN  o.a.j.o.p.segment.file.TarReader - Could not find a valid tar index in [/mnt/crx/author/crx-quickstart/repository/segmentstore/data01624a.tar], recovering...
18:18:36.569 [main] DEBUG o.a.j.oak.plugins.segment.Compactor - Eager flush enabled.
18:19:36.910 [main] DEBUG o.a.j.oak.plugins.segment.Compactor - Compacted 5000000 nodes, 1987504 properties, 57 binaries in 60328 ms.
18:22:06.905 [main] DEBUG o.a.j.oak.plugins.segment.Compactor - Compacted 10000000 nodes, 4771516 properties, 294 binaries in 149994 ms.
18:23:46.708 [main] DEBUG o.a.j.oak.plugins.segment.Compactor - Compacted 15000000 nodes, 6505235 properties, 323 binaries in 99803 ms.
18:36:38.014 [main] DEBUG o.a.j.oak.plugins.segment.Compactor - Compacted 20000000 nodes, 25559366 properties, 430789 binaries in 771305 ms.
18:40:46.736 [main] DEBUG o.a.j.oak.plugins.segment.Compactor - Compacted 25000000 nodes, 62174573 properties, 442755 binaries in 248722 ms.
18:46:51.053 [main] DEBUG o.a.j.oak.plugins.segment.Compactor - Compacted 30000000 nodes, 96729247 properties, 1040072 binaries in 364317 ms.

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne