Compattazione offline di Oak - Migliora le prestazioni, evita problemi di memoria e traccia l'avanzamento

L'esecuzione della compattazione di tar offline è lenta su grandi archivi Oak e causa OutOfMemoryException. Non esiste modo di tracciare l'avanzamento. A volte la compattazione offline aumenta le dimensioni dell'archivio dopo il completamento.

Ambiente

Adobe Experience Manager 6.x

Oak 1.2.x e 1.4.x

Risoluzione

Usa il seguente comando:

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

Nota: per alcuni dei precedenti parametri è necessario regolare i percorsi.

Alcuni nuovi parametri sono inclusi nelle versioni oak-run 1.2.17 per AEM6.1 e 1.4.4 per AEM6.2 or successivi:

  • -Dlogback.configurationFile=logback-compaction.xml - Questo esegue il log dell'avanzamento della compattazione. Devi aggiungere il file logback-compaction.xml nella stessa posizione del file jar oak-run.

logback-compattazione.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 - Questo è il nuovo flag che permette al compattatore di utilizzare le transazioni persistenti. Impedisce l'eccezione di memoria esaurita.

Traccia l'avanzamento:

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.
Logo Adobe

Accedi al tuo account