Erhöhen Sie den Speicher für Java

Client bleibt stecken und reagiert nicht mehr - niedriger Speicher

Petr Pech avatar
Verfasst von Petr Pech
Vor über einer Woche aktualisiert

Wenn

Ihr Client nach einiger Zeit der Benutzung anfängt, stecken zu bleiben und die CPU intensiv zu nutzen, bis er ganz aufhört zu reagieren, haben Sie höchstwahrscheinlich eine niedrige Speichereinstellung für den Java-Prozess. Typischerweise kann diese Situation beim Erstellen von Druckberichten oder bei Exporten mit großen Datenmengen auftreten.

Problemidentifikation

Dieser Schritt kann übersprungen werden. Das Problem der Speicherknappheit kann überprüft werden, indem der Client von der Befehlszeile (Terminal) aus gestartet wird, wobei die gleiche Speicherkonfiguration wie beim normalen Start angenommen wird (siehe Konfigurationsdateien

). Sie können den Client auf folgende Weise über die Befehlszeile starten:

  • Windows: C:\Programme (x86)\WinStrom\spustit-winstrom.bat Vergleichen Sie vor der Ausführung die Parameter in dieser Datei mit der Datei parameters.txt

  • Linux: Führen Sie in einem Terminalfenster /usr/bin/flexi aus, identisch zum normalen Anwendungsstart

  • MacOS: führen Sie in einem Terminalfenster /Applications/FlexiBee.app/Contents/MacOS/flexi-console aus und vergleichen Sie die Parameter in dieser Datei mit der Konfiguration in der Info.plist

Die folgenden Fehler werden in der Konsole angezeigt, wenn der Client aufgrund von Speichermangel feststeckt:

  1. java.lang.OutOfMemoryError: java heap space

  2. java.lang.OutOfMemoryError: permGen space

  3. java.lang.OutOfMemoryError: GC-Overhead-Grenze überschritten

Die erste zeigt eine unzureichende Gesamtspeichergröße an und kann durch den Java-Parameter -Xmx geändert werden, während die zweite eine unzureichende Größe des PermGen-Bereichs anzeigt und durch den Parameter -XX:MaxPermSize geändert werden kann.

Einstellen der Parameter

Parameterwerte, die die maximale Speichergröße für eine Anwendung beeinflussen, können in den folgenden Konfigurationsdateien

geändert werden:

  • Windows: C:\Programme (x86)\WinStrom\parameters.txt, oder auf dem Pfad, wo Sie Flexi installiert haben

  • Linux: /etc/default/flexi den Parameter hinzufügen: Flexi_JAVA_ARGS="${FLEXI_JAVA_ARGS} -Xmx1g -XX:MaxPermSize=256m"

  • MacOS: /Applications/Flexi.app/Contents/Info.plist

Empfohlene Parameterwerte:

Minimum Empfohlene Erhöhung

Java Heap -Xmx1g -Xmx1200m

PermGen -XX:MaxPermSize=128m -XX:MaxPermSize=256m

Wenn Sie mehr als 1GB Speicher benötigen, empfehlen wir die Verwendung von 64bit Java. 32bit Java hat eine Grenze zwischen 1 - 1,2GB, abhängig vom Betriebssystem. Falls Sie das Paket neu installieren, müssen Sie die Parameter leider erneut einstellen (gilt für Windows und macOS).

Hat dies Ihre Frage beantwortet?