Hallo zusammen,
ich habe über die Java Einstellungen von Openhab festgelegt, dass er Initial 2 GB RAM hat und bis zu 4 GB erhöhen darf.
Komischerweise wächst der Speicher innerhalb einer Woche immer auf 4 GB an und dann bleibt OH hängen.
Wie handhabt ihr das mit dem Arbeitsspeicher.
Was ist das optimalste?
Zur Info:
Ich habe durch KNX sehr viele Items in meinem OH.
Arbeitsspeicher Openhab
- udo1toni
- Beiträge: 15248
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Arbeitsspeicher Openhab
~ Grummel ~
Optimal ist bereits der Superlativ. Wenn etwas anderes "noch optimaler" wäre, wäre das Optimale nicht mehr optimal.
openHAB braucht keine 2GByte RAM, selbst wenn Du 10000 Items hast.
Java hat einen Garbage Collector, der automatisch ungenutzten Speicher freigibt. Das tut er allerdings erst dann, wenn es nicht mehr vermeidbar ist, denn alles, was im RAM liegt, muss nicht erst ins RAM geholt werden. Auf dem Pi wird openHAB gewöhnlich immer als 32 Bit Version ausgeführt. Java kann also gar keine 4 GByte Speicher zur Verfügung haben, selbst wenn Du ein 8 GByte Modell nutzen solltest. Setze die Untergrenze ruhig auf 1 GByte und die Obergrenze meinetwegen auf 3 GByte, aber wundere Dich nicht, wenn openHAB nach einer Weile "immer 3 GByte verbraucht", das ist normal und so gewollt. Warum sollte man RAM ungenutzt lassen? Dennoch sollten auch andere Prozesse im System noch Speicher zur Verfügung haben
Optimal ist bereits der Superlativ. Wenn etwas anderes "noch optimaler" wäre, wäre das Optimale nicht mehr optimal.
openHAB braucht keine 2GByte RAM, selbst wenn Du 10000 Items hast.
Java hat einen Garbage Collector, der automatisch ungenutzten Speicher freigibt. Das tut er allerdings erst dann, wenn es nicht mehr vermeidbar ist, denn alles, was im RAM liegt, muss nicht erst ins RAM geholt werden. Auf dem Pi wird openHAB gewöhnlich immer als 32 Bit Version ausgeführt. Java kann also gar keine 4 GByte Speicher zur Verfügung haben, selbst wenn Du ein 8 GByte Modell nutzen solltest. Setze die Untergrenze ruhig auf 1 GByte und die Obergrenze meinetwegen auf 3 GByte, aber wundere Dich nicht, wenn openHAB nach einer Weile "immer 3 GByte verbraucht", das ist normal und so gewollt. Warum sollte man RAM ungenutzt lassen? Dennoch sollten auch andere Prozesse im System noch Speicher zur Verfügung haben

openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 202
- Registriert: 2. Mär 2020 13:50
Re: Arbeitsspeicher Openhab
Hallo Udo1toni,
okay soweit verstanden. Aber wieso läuft Openhab dann bei mir in einen Java Out of Memory sobald es die 4 GB erreicht hat und wendet dann nicht den Garbage Collector an?
Wenn ich ja nun 1 und 3 GB einstelle dann erreicht es ja auch irgendwann die 3GB und bleibt hängen oder?
okay soweit verstanden. Aber wieso läuft Openhab dann bei mir in einen Java Out of Memory sobald es die 4 GB erreicht hat und wendet dann nicht den Garbage Collector an?
Wenn ich ja nun 1 und 3 GB einstelle dann erreicht es ja auch irgendwann die 3GB und bleibt hängen oder?
- udo1toni
- Beiträge: 15248
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Arbeitsspeicher Openhab
Das habe ich geschrieben.
Aber noch mal andersrum...
Gesamtspeicher des Pi 4 GByte (oder 8 GByte, aber ich gehe jetzt mal von 4 GByte aus)
Davon geht Speicher für die Grafik ab (keine Ahnung, wieviel das ist, mutmaßlich 64 MByte oder 128 MByte)
Vom Rest nimmt sich das Betriebssystem ebenfalls etwas, jedes Programm braucht RAM. Mein Samba Container benötigt etwas über 128MByte, das dürfte auch in etwa dem minimalen Bedarf des Pi mit Raspberry Pi OS lite (ohne laufendes Java) entsprechen. Jetzt sind von den 4 GByte vermutlich bereits etwa 256MByte weg, bleiben noch 3,75GByte
Aber selbst wenn Du ein 8 GByte Modell nutzt (und das Betriebssystem auch die 8 GByte nutzt... das ist nicht der Fall mit dem openHABian 32 Bit Image), Java läuft immer noch im 32 Bit Modus. Java benötigt selbst Speicher und nutzt diesen auch, der kommt aber ontop. Nur kann Java im 32 Bit Modus nur insgesamt 4 GByte adressieren. Wenn Du nun Java sagst, dass openHAB 4 GByte nutzen kann, bleibt kein Speicher mehr für Java übrig, wenn openHAB sich der Grenze nähert.
Die Speichervoreinstellungen sind selbst für größere Installationen gewöhnlich ausreichend, aber natürlich kann man sie anpassen. Nur muss man sich dann zumindest einigermaßen damit auskennen, sonst sind Probleme vorprogrammiert.
Aber noch mal andersrum...
Gesamtspeicher des Pi 4 GByte (oder 8 GByte, aber ich gehe jetzt mal von 4 GByte aus)
Davon geht Speicher für die Grafik ab (keine Ahnung, wieviel das ist, mutmaßlich 64 MByte oder 128 MByte)
Vom Rest nimmt sich das Betriebssystem ebenfalls etwas, jedes Programm braucht RAM. Mein Samba Container benötigt etwas über 128MByte, das dürfte auch in etwa dem minimalen Bedarf des Pi mit Raspberry Pi OS lite (ohne laufendes Java) entsprechen. Jetzt sind von den 4 GByte vermutlich bereits etwa 256MByte weg, bleiben noch 3,75GByte
Aber selbst wenn Du ein 8 GByte Modell nutzt (und das Betriebssystem auch die 8 GByte nutzt... das ist nicht der Fall mit dem openHABian 32 Bit Image), Java läuft immer noch im 32 Bit Modus. Java benötigt selbst Speicher und nutzt diesen auch, der kommt aber ontop. Nur kann Java im 32 Bit Modus nur insgesamt 4 GByte adressieren. Wenn Du nun Java sagst, dass openHAB 4 GByte nutzen kann, bleibt kein Speicher mehr für Java übrig, wenn openHAB sich der Grenze nähert.
Die Speichervoreinstellungen sind selbst für größere Installationen gewöhnlich ausreichend, aber natürlich kann man sie anpassen. Nur muss man sich dann zumindest einigermaßen damit auskennen, sonst sind Probleme vorprogrammiert.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 202
- Registriert: 2. Mär 2020 13:50
Re: Arbeitsspeicher Openhab
Hallo Udo1Toni,
ich habe mein Openhab nicht auf einem Raspberry laufen sondern auf einem Debian in einer virtuellen Maschine.
Ich lasse die Einstellungen default indem ich aus der Datei "openhab" unter etc/default den JAVA OPTS Parameter entferne oder?
ich habe mein Openhab nicht auf einem Raspberry laufen sondern auf einem Debian in einer virtuellen Maschine.
Ich lasse die Einstellungen default indem ich aus der Datei "openhab" unter etc/default den JAVA OPTS Parameter entferne oder?
- udo1toni
- Beiträge: 15248
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Arbeitsspeicher Openhab
Ah, das war mir nicht bewusst. Du hast Dein Setting nicht als Signatur angehängt

VMs sollte gewöhnlich nicht den kompletten zugewiesenen Speicher nutzen, sondern erst bei Bedarf weiteren Speicher anfordern (je nach Platform heißt das dann z.B. Ballooning). Das wird hier nicht gut funktionieren, Du wirst also spürbar mehr Speicher benötigen, weil Java nutzbaren Speicher nicht freiwillig zurückgibt.
Ja, das sollte so sein.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet