Offline-Komprimierung für Oak – Leistung verbessern, Speicherprobleme vermeiden und Fortschritt nachverfolgen

Das Ausführen einer Offline-Tar-Komprimierung ist bei großen Oak-Repositorys langsam und löst eine OutOfMemoryException (Ausnahme wegen fehlenden Speicherplatzes) aus. Es gibt keine Möglichkeit, den Fortschritt nachzuverfolgen. In manchen Fällen wird beobachtet, dass die Repository-Größe nach Abschluss der Offline-Komprimierung angewachsen ist.

Umgebung

Adobe Experience Manager 6.x

Oak 1.2.x und 1.4.x

Lösung

Verwenden Sie den folgenden Befehl:

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

Hinweis: Oben sind einige Parameter enthalten, für die Pfade angepasst werden müssen.

In den oak-run-Versionen 1.2.17 für AEM6.1 und 1.4.4 für AEM6.2 oder höher sind einige neue Parameter enthalten:

  • -Dlogback.configurationFile=logback-compaction.xml – Protokolliert den Fortschritt der Komprimierung. Sie müssen die Datei „logback-compaction.xml“ zu dem Speicherort hinzufügen, an dem sich auch die jar-Datei von oak-run befindet.

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 – Das ist das neue Flag, das es dem Kompressor ermöglicht, persistente Transaktionen zu verwenden. Dies verhindert eine Ausnahme wegen fehlenden Speicherplatzes.

Fortschritt nachverfolgen:

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.

 Adobe

Schneller und einfacher Hilfe erhalten

Neuer Benutzer?

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online