Optimieren von Inline-Dokumenten und Auswirkungen auf den JVM-Speicher

Wenn Sie in der Regel relativ kleine Dokumente verarbeiten, können Sie die Leistung in Bezug auf die Übertragungsgeschwindigkeit von Dokumenten und den Speicherplatz optimieren. Implementieren Sie zu diesem Zweck die nachfolgenden AEM Forms-Produktkonfigurationen:

  • Erhöhen Sie die standardmäßige Maximalgröße für Inline-Dokumente für AEM Forms, sodass diese über der Größe der meisten Dokumente liegt.

  • Wenn Sie größere Dateien verarbeiten, legen Sie Speicherordner fest, die sich in einem Hochgeschwindigkeits-Festplattensystem oder auf einem RAM-Datenträger befinden.

Die Inline-Maximalgröße und die Speicherordner (AEM Forms-Speicherordner für temporäre Dateien und Ordner des globalen Dokumentenspeichers) werden in Administration Console konfiguriert.

Dokumentgröße und Inline-Maximalgröße

Wenn die Größe eines Dokuments, das von AEM Forms zur Verarbeitung gesendet wird, kleiner gleich der standardmäßigen Maximalgröße für Inline-Dokumente ist, wird es als Inline-Dokument auf dem Server gespeichert und als Adobe-Dokumentobjekt serialisiert. Die Inline-Speicherung von Dokumenten kann die Leistung erheblich steigern. Wenn Sie jedoch den Arbeitsablauf für Formulare verwenden, wird der Inhalt möglicherweise zur einfacheren Verfolgung auch in der Datenbank gespeichert. Eine Erhöhung der Inline-Maximalgröße kann sich also auf die Datenbankgröße auswirken.

Dokumente, welche die Inline-Maximalgröße überschreiten, werden im lokalen Dateisystem gespeichert. Das Adobe-Dokumentobjekt, das von und zum Server übertragen wird, ist dann lediglich ein Verweis auf diese Datei.

Wenn der Dokumentinhalt kleiner als die Inline-Maximalgröße ist, wird er in der Datenbank (d. h. als Teil des Serialisierungsaufkommens des Dokuments) gespeichert. Eine Erhöhung der Inline-Maximalgröße kann sich also auf die Datenbankgröße auswirken.

Die Inline-Maximalgröße ändern

  1. Klicken Sie in Administration Console auf „Einstellungen“ > „Core-Systemeinstellungen“ > „Konfigurationen“.

  2. Geben Sie einen Wert in das Feld „Standardmäßige Maximalgröße für Inline-Dokumente“ ein.

Hinweis: Der Standardwert für die Inline-Maximalgröße beträgt 65.536 Bytes.

Maximale JVM-Heap-Größe

Wenn die Inline-Maximalgröße erhöht wird, ist mehr Speicher zum Ablegen der serialisierten Dokumente erforderlich. Daher muss in der Regel auch die JVM-Einstellung „Maximale Heap-Größe“ erhöht werden.

Bei einem stark ausgelasteten System, das eine Vielzahl von Dokumenten verarbeitet, kann der JVM-Heap-Speicher schnell erschöpft sein. Um Fehler wegen ungenügenden Speicherplatzes zu verhindern, muss die maximale JVM-Heap-Größe um einen Wert erhöht werden, der dem Produkt aus der Größe der Inline-Dokumente und der Anzahl der Dokumente entspricht, die in der Regel zu einem bestimmten Zeitpunkt ausgeführt werden.

Erhöhung der maximalen JVM-Heap-Größe = (Größe der Inline-Dokumente) x (durchschnittliche Anzahl verarbeiteter Dokumente).

Maximale JVM-Heap-Größe berechnen

In diesem Beispiel wurden die maximale JVM-Heap-Größe ursprünglich auf 512 MB und die Inline-Maximalgröße auf 64 KB festgelegt. Der Server muss für die gleichzeitige Ausführung von 10 Aufträgen konfiguriert werden, wobei jeder Auftrag 9 Eingabedateien und 1 Ergebnisdatei umfasst (d. h. 10 Dateien pro Auftrag und 100 gleichzeitig verarbeitete Dateien). Die Größe aller Dateien liegt unter 512 KB.

Damit alle Dateien als Inline-Dateien gespeichert werden können, muss die Inline-Maximalgröße auf mindestens 512 KB festgelegt werden.

Die erforderliche Erhöhung der maximalen JVM-Heap-Größe wird mit der folgenden Gleichung berechnet:

(512 KB) x (100) = 51200 KB oder 50 MB

Die maximale JVM-Heap-Größe muss daher um 50 MB erhöht werden, sodass sie insgesamt 562 MB beträgt.

Heap-Fragmentierung berücksichtigen

Wenn die Größe von Inline-Dokumenten auf einen hohen Wert festgelegt wird, erhöht sich dadurch das Fehlerrisiko wegen ungenügenden Speicherplatzes bei Systemen, die für die Heap-Fragmentierung anfällig sind. Zur Inline-Speicherung eines Dokuments muss im JVM-Heap-Speicher ein genügend großer zusammenhängender Speicherblock zur Verfügung stehen. Einige Betriebssysteme, JVMs und Löschprogrammalgorithmen (so genannte „Garbage Collectors“) sind für Fragmentierungen des Heap-Speichers anfällig. Die Fragmentierung reduziert die Größe des zusammenhängenden Heap-Speichers, sodass Fehler wegen ungenügenden Speicherplatzes auch dann auftreten können, wenn der insgesamt verfügbare freie Heap-Speicher eigentlich ausreichend ist.

Dies kann beispielsweise der Fall sein, wenn sich der JVM-Heap nach der Ausführung anderer Vorgänge auf dem Anwendungsserver in einem fragmentierten Zustand befindet und der Garbage Collector den Heap nicht genügend komprimieren kann, um große, zusammenhängende Speicherblöcke zu bilden. Fehler wegen ungenügenden Speicherplatzes können auch dann noch auftreten, wenn die maximale JVM-Heap-Größe an die erhöhte Inline-Maximalgröße angepasst wurde.

Um die Heap-Fragmentierung zu berücksichtigen, darf die Inline-Dokumentgröße auf nicht mehr als 0,1 % der gesamten Heap-Größe eingestellt werden. Mit einer maximalen JVM-Heap-Größe von 512 MB kann beispielsweise eine Inline-Maximalgröße von 512 MB x 0,001 = 0,512 MB oder 512 KB unterstützt werden.