Einführung
Einführung

Einführung / Konfiguration des FirstSpirit-Servers / Konfigurationsdateien (FirstSpirit-Server) / Java-VM und -Wrapper (fs-wrapper.conf) / Konfiguration der Java-VM

Konfiguration der Java-VM

Da FirstSpirit als Anwendung innerhalb einer virtuellen Java-Maschine (Java-VM) läuft und die zurzeit verfügbaren Java-VMs über keine dynamische Speicherverwaltung gegenüber dem Betriebssystem verfügen, sind zur optimalen Skalierung an den Anwendungsfall einige Parameter bezüglich der Speicherverwaltung der Java-VM manuell zu konfigurieren.

Der für FirstSpirit nutzbare Speicherbereich ist der sogenannte „Heap“ der Java-VM. Dieser Heap sollte so groß wie möglich eingestellt werden, aber nicht größer als der im Betriebssystem freie Hauptspeicher sein. Als Standardeinstellung sollten 75% des RAM eingestellt werden, sofern keine anderen Dienste parallel zu FirstSpirit auf dem Server betrieben werden.

Ein Heap wesentlich größer als 10 GByte kann mit den hier genannten Parametern nicht problemlos verwaltet werden. Falls diese Größenordnung notwendig ist, muss das Verhalten der Garbage-Collection über JMX mittels jconsole oder VisualVM analysiert und die Java-VM-Parameter an den Anwendungsfall im Detail angepasst werden.

Wichtig Sofern ein Heap größer als 10 GByte eingestellt werden soll, muss zunächst beim Hersteller (e-Spirit AG) angefragt werden, da in solchen Fällen meist weitere, spezielle Parameter zum Konfigurieren des Garbage Collectors notwendig sind.

Die Größe des Heap wird über die Parameter wrapper.java.initmemory bzw. wrapper.java.initmemory.percent und wrapper.java.maxmemory bzw. wrapper.java.maxmemory.percent eingestellt (siehe Parameter des Java-Wrappers).

Ein großer Java-Heap (über 1 GByte) erfordert eine Optimierung der Parameter zur Anpassung der Garbage Collection, die im folgenden Abschnitt beschrieben wird.

Große Datenmengen in FirstSpirit-Projekten oder eine hohe Anzahl gleichzeitig aktiver FirstSpirit-Benutzer können den Garbage-Collector der Java-VM in deren Standardkonfiguration überlasten. Die Überlastung macht sich durch Wartezeiten im Bereich größer als 10s in der Antwortzeit der FirstSpirit-Clients bemerkbar. Bei längeren Wartezeiten können auch Verbindungsabbrüche zwischen FirstSpirit-Client und -Server auftreten. Die Ursache für die Wartezeit ist die Garbage-Collection, die in der Standardkonfiguration den FirstSpirit-Server für bestimmte Operationen temporär vollständig anhält.

In der Log-Datei des Garbage-Collectors (log/fs-wrapper.log bzw. log/fs-gc.log) ist zu diesem Zeitpunkt die Meldung „Full GC“ oder „time exceeded“ zu sehen.

Um das vollständige Anhalten des FirstSpirit-Servers durch den Garbage-Collector zu verhindern, muss ein anderes Verfahren als die Standardkonfiguration für den Garbage Collector aktiviert werden. Die Java-VM von Oracle stellt dazu seit Version 1.6.0 den nebenläufig arbeitenden Garbage Collector zur Verfügung: Concurrent Mark Sweep GC (CMS-GC).

Die im folgenden Abschnitt genannten Parameter werden bereits während der Installation verwendet. Es ist nach der Installation nur noch eine Anpassung der Größe des Heaps in einigen Parametern notwendig, die Angaben in absoluten MByte enthalten. Alle Parameter, die nur Verhältnisse oder Prozentangaben enthalten, können unverändert beibehalten werden.

© 2005 - 2020 e-Spirit AG | Alle Rechte vorbehalten. | FirstSpirit 2020-09 | Datenschutz | Impressum | Kontakt