Ziele
-
Limitierbarkeit des vom PLANTA-Server genutzten Speichers
-
Behandlung von Speicherengpässen
-
Erhalt der Arbeitsfähigkeit auch bei knappen Systemressourcen
Konfiguration
-
Im Auslieferungszustand ist die Speicherbegrenzung ausgeschaltet.
-
Die Parameter der Speicherbegrenzung sind über die entsprechenden Umgebungsvariablen im manager-Container des Servers einstellbar.
-
Die Aktivierung erfolgt über die Angabe einer maximalen Speichergröße mittels des Parameters
maintain__mem_limit__max_size.-
Diese Größe ist abhängig von den Systemressourcen zu wählen.
-
Hierbei ist zu beachten, dass die Größe der Java Virtual Machine nicht inbegriffen ist, also von den Systemressourcen abgezogen werden muss.
-
Weiterhin werden pro aktiver Sitzung weitere Ressourcen allokiert, die ebenfalls nicht inbegriffen sind (ca. 1,5 GiB bei 50 parallelen Sitzungen).
-
PLANTA empfiehlt beispielsweise
maintain__mem_limit__max_size=8192bei einem Server mit 16 GiB RAM und bei einer Systemdimensionierung "mittel" (also einer JVM-Konfiguration von 4096 MiB).
-
-
Die Angaben für erforderlichen freien Speicher für bestimmte Aktionen sollten nur nach Rücksprache mit PLANTA angepasst werden, da eine Änderung negative Auswirkungen auf den Betrieb des PLANTA-Server haben kann.
Auswirkungen bei Speicherknappheit
Information
-
Bei Speicherknappheit werden gegebenenfalls die folgenden Meldungen angezeigt.
Dialogmeldung 1045 (Die Aktion "[Aktionsname]" wird wegen Speichermangel abgebrochen.)
Dialogmeldung 1046 (Ihre Sitzung wird wegen Speichermangel abgebrochen.)
Python Exception(s) Memory limit exceeded!
-
Bei Auftreten einer Speicherknappheit im Python-Kontext (z.B. aus Makros heraus) wird, falls die Exception unbehandelt bleibt, folgende Nachricht ausgegeben:
Situationen und Auswirkungen
Informationen
-
Bei den nachfolgend genannten Aktionen wird geprüft, ob die für die Aktion veranschlagte Speichergröße noch zur Verfügung steht.
-
Ist dies nicht der Fall, wird die Aktion abgebrochen.
-
Der Benutzer wird über den Abbruch und den Grund dafür informiert.
-
Jeder Aktionsabbruch hat spezifische Auswirkungen, die folgend erläutert werden.
Start einer Sitzung
-
Die Prüfung erfolgt vor Anmeldung des Benutzers.
-
Die Meldung 1045 wird angezeigt.
-
Nach Bestätigung mittels OK wird die Sitzung beendet.
Laden von Moduldaten
-
Die Prüfung erfolgt bei jedem Laden der Moduldaten (z.B. Filtern).
-
Die Meldung 1045 wird angezeigt.
-
Wird das Laden der Moduldaten aus Python-Code heraus angestoßen, wird auch eine Python-Exception ausgegeben.
-
Das Laden von Moduldaten (analog dem Abbrechen des Modulfilterns mittels ESC) wird abgebrochen.
Kalkulation eines Projektes
-
Die Prüfung erfolgt vor der Kalkulation eines Projektes.
-
Die Meldung 1045 wird angezeigt.
-
Eine Python-Exception wird ausgegeben, wenn die Kalkulation von Python-Code aufgerufen wurde.
-
Die Kalkulation wird nicht ausgeführt.
Neuplanung
-
Die Prüfung erfolgt vor dem Start der Neuplanung.
-
Die Meldung 1045 wird dem Benutzer angezeigt.
-
Eine Python-Exception wird ausgegeben, wenn die Kalkulation von Python-Code aufgerufen wurde.
-
Die Neuplanung wird nicht ausgeführt.
Überschreitung der Allokationsgrenze
-
Die Prüfung erfolgt bei Allokationen.
-
Die Meldung 1046 wird angezeigt.
-
Je nach ausgeführter Aktion können auch Python-Exceptions auftreten.
-
Die Sitzung wird nach Bestätigung der Nachrichten beendet.