NEWS
Redis in ioBroker - Überblick
-
Hi, ja, wenn du zufrieden bist mit deinem System, dann lass es so, mach da schoen die Updates mit, und alles ist gut.
Redis kann man, muss man aber nicht. Mit JsonL ist ja schon eine bessere und schnellere Verwaltung vorhanden, als mit files/files, wie es frueher war. -
@vepman Mit den CPU Werten. Lass es was Umstellung angeht. Wir passen die Meldung an
-
@uwerlp Siehe ooben. Wenn die klast des js.controller ok ist dann nichts tun. Alles gut
-
@apollon77 Im Htop sehe ich für iobroker.js-controller ständig wechselnde Werte von 8...80 CPU% im Mittel aber etwa 35. Für das Gesamtsystem wird Load average: 1,12 1,21 1,28 angezeigt. Habe vier Kerne.
Ist da jetzt der Wechsel empfohlen? -
@rushmed Ich würde sagen das ist ok - es sei denn Du siehst Performanceissues bei der Nutzung
-
@apollon77 Klar könnte alles schneller sein aber ich bin sehr zufrieden, vor allem wegen der Satbilität.
Danke für den Rat. -
Hallo,
ich bin gerade dabei, mit meinem Qnap alles in Container zu verschieben. Dazu eine Frage.
Ich habe Iobroker + Iobroker Slave auf einem Raspberry und möchte zukünftig mit redis auch Nextcloud im Container betreiben.Kann ich das alles mit einem installierten Rediscontainer machen?
Danke Bert
-
@bert-0 sagte in Redis in ioBroker - Überblick:
Kann ich das alles mit einem installierten Rediscontainer machen?
Klar ... Am Ende ist dieser Redis dann der neue "Master" im ioBroker System ...
-
@bert-0 sagte in Redis in ioBroker - Überblick:
Kann ich das alles mit einem installierten Rediscontainer machen?
du möchtest eine Redis-Instanz für iobroker und Nextcloud nutzen? Dann achte einfach darauf, dass du bei Nextcloud in der Redis-Config einen "dbindex" > "0" einträgst - dann kommen sich die beiden nicht in die Quere (afair hat Redis im Default 16 "Datenbanken" konfiguriert, ohne weitere Angaben landet man üblicherweise in DB "0". Da dürfte dann der iobroker drin sein...)
-
Danke euch beiden. Ich werde nach Weihnachten mich mal ans Werk machen.
Falls das mit der Redisdatenbank schief läuft, ist das ja überiobroker setup custom
wieder rückgängig zu machen?
Hoffe das es klappt, da das Antwortverhalten beim Iobroker schon grenzwertig ist ( Der Info TAB weist mich darauf hin, dass ich mehr als 30000 Objekte habe) und bei Nextcloud ausserhalb des Containers der Aufwand immer größer und dort die Anhebung der PHP Version mit QNAP immer schwieriger wird.Bert
-
@bert-0 Ja geht alles wieder rückgängig zu machen
-
@bert-0 sagte in Redis in ioBroker - Überblick:
Kann ich das alles mit einem installierten Rediscontainer machen?
Ich betreibe das genau so, und wie @JLeg schrieb, Nextcloud einfach in den DB1 schieben, dann sind die Daten sauber getrennt.
In der config.php sieht das dann so (oder ähnlich) aus:
'memcache.local' => '\\OC\\Memcache\\Redis', 'memcache.locking' => '\\OC\\Memcache\\Redis', 'redis' => array ( 'host' => 'redis', 'port' => 6379, 'dbindex' => 1, ),
-
Ich habe nun mit :
docker run -d --name redis-qnap --restart=always -p 6379:6379 -v /share/CE_CACHEDEV1_DATA/Container/redis-data:/data -v /share/CE_CACHEDEV1_DATA/Container/redis-data/conf/redis.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf
einen redis Container als Host auf meinem QNAP installiert. Config kann bearbeitet werden und auch eine Dump.rdb wurde erzeugt.
Nun habe ich Master ( 192.168.2.xxx) im Container als Bridge und zusätzlich noch einen Raspy im gleichen Netzwerkadressraum.
Ich schaffe es aber nicht mitiobroker setup custom
Redis einzubinden. Selbst wenn ich die IP des Redis Containers angeben, kommt die Fehlermeldung.
Do you want to migrate objects and states from "jsonl/jsonl" to "redis/redis" [y/N]: y Migrating the objects database will overwrite all objects! Are you sure that this is not a slave host and you want to migrate the data? [y/N]: y Connecting to previous DB "jsonl/jsonl"... Server Configured backup period 7200000 is larger than the supported maximum of 35791 minutes. Defaulting to 120 minutes. Server Configured backup period 7200000 is larger than the supported maximum of 35791 minutes. Defaulting to 120 minutes. Creating backup ... This can take some time ... please be patient! host.iobroker 8521 states saved host.iobroker 10736 objects saved Backup created: /opt/iobroker/backups/2024_01_02-15_06_32_backupiobroker-migration.tar.gz updating conf/iobroker.json Connecting to new DB "redis/redis" (can take up to 20s) ... No connection to objects 10.0.3.2:6379[redis] New Database could not be connected. Please check your settings. No settings have been changed. restoring conf/iobroker.json No connection to states 10.0.3.2:6379[redis]
Ich weiss das ich in einem anderen Adressraum bin, aber gibt es da eine Lösung?
Oder kann ich den iobroker Master von Bridge in Host netzwerkmäßig ändern, und wie kann ich dann auf diesen zugreifen ausserhalb des Containers?Danke Bert
-
@bert-0 sagte in Redis in ioBroker - Überblick:
Ich habe nun mit :
docker run -d --name redis-qnap --restart=always -p 6379:6379 -v /share/CE_CACHEDEV1_DATA/Container/redis-data:/data -v /share/CE_CACHEDEV1_DATA/Container/redis-data/conf/redis.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf
einen redis Container als Host auf meinem QNAP installiert.
Was meinst du mit "Host"? Host-Netzwerk kann nicht gemeint sein mit diesem run Befehl.
Nun habe ich Master ( 192.168.2.xxx) im Container als Bridge und zusätzlich noch einen Raspy im gleichen Netzwerkadressraum.
?? Du hast einem Bridge-Netzwerk den gleichen Adressraum zugewiesen wie dem physischen Netzwerk?
Ich weiss das ich in einem anderen Adressraum bin, aber gibt es da eine Lösung?
Oder kann ich den iobroker Master von Bridge in Host netzwerkmäßig ändern, und wie kann ich dann auf diesen zugreifen ausserhalb des Containers?Bitte nochmal detailliert beschreiben, wie die Adressbereiche aussehen, welcher Container mit welcher IP läuft und was der Raspi da für eine Rolle spielen soll.
-
@marc-berg sagte in Redis in ioBroker - Überblick:
Ich habe nun mit :
docker run -d --name redis-qnap --restart=always -p 6379:6379 -v /share/CE_CACHEDEV1_DATA/Container/redis-data:/data -v /share/CE_CACHEDEV1_DATA/Container/redis-data/conf/redis.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.confeinen redis Container als Host auf meinem QNAP installiert.
Was meinst du mit "Host"? Host-Netzwerk kann nicht gemeint sein mit diesem run Befehl.
Hast du Recht, ist nur Standard ( NAT ) . Sorry
@marc-berg sagte in Redis in ioBroker - Überblick:
?? Du hast einem Bridge-Netzwerk den gleichen Adressraum zugewiesen wie dem physischen Netzwerk?
ja, das ist der Adressraum meiner Fritzbox und wird über die Bridge auf den virtuellen Switch des QNAPS geleitet. Grund ist, ich habe einen Raspy als Slave/Multihost und virtueller CCU und der liegt im gleichen Adressraum ( Iobroker Master : 192.168.2.30 und Slave Raspberry 192.168.2.40).
Wenn du hier einen anderen Konfigurationsvorschlag hast dann gerne. Der Redis Server liegt auf: 10.0.3.2. Der wir aber wahrscheinlich gekapselt vom Netzwerk.
Danke
-
@bert-0 sagte in Redis in ioBroker - Überblick:
ja, das ist der Adressraum meiner Fritzbox und wird über die Bridge auf den virtuellen Switch des QNAPS geleitet.
Das ist dann aber kein Bridge-Netzwerk, sondern ein MACVLAN (in Docker Sprech), auch wenn das QNAP hier nicht so nennt.
Wenn du hier einen anderen Konfigurationsvorschlag hast dann gerne. Der Redis Server liegt auf: 10.0.3.2. Der wir aber wahrscheinlich gekapselt vom Netzwerk.
Ja genau, auf diese IPs hast du (ohne Verbiegungen an den Routen) von außen keinen Zugriff. Darum gibt es ja das Portmapping, um über diese Ports des Hosts zuzugreifen. ABER von einem Container im MACVLAN darf nicht auf den Host zugegriffen werden.
Aus meiner Sicht hast du zwei Möglichkeiten
-
den Redis Container mit ins MACVLAN setzen (an den Virt. Switch 3) oder
-
der ioBroker Container zusätzlich an dein Bridge-Netzwerk (lxcbr0) anbinden
Im zweiten Fall kannst du vom ioB dann direkt auf den redis-Container zugreifen.
-
-
@marc-berg sagte in Redis in ioBroker - Überblick:
Aus meiner Sicht hast du zwei Möglichkeiten
den Redis Container mit ins MACVLAN setzen (an den Virt. Switch 3) oder
der ioBroker Container zusätzlich an dein Bridge-Netzwerk (lxcbr0) anbinden
Danke für deine Geduld. Der 1. Fall ( (an den Virt. Switch 3) ) ist aus meiner Sicht der beste.
jetzt scheitert das aber daran, wie ich das per Dockerbefehl bei Austausch mit einbinden kann. Das ist übrigens auch das gleiche problem bei meinem iobroker. Ich kann den über Docker installieren, aber muss danach manuell auf Bridge mit der gewünschten IP setzen.
@bert-0 sagte in Redis in ioBroker - Überblick:
docker run -d --name redis-qnap --restart=always -p 6379:6379 -v /share/CE_CACHEDEV1_DATA/Container/redis-data:/data -v /share/CE_CACHEDEV1_DATA/Container/redis-data/conf/redis.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf
Hast du eine Idee, wie ich das per Docker so konfigurieren kann, dass die im gleichen Netzwerk sind?
Danke
Bert
-
Ich habe auch mal wieder redis probiert. Die CPU-Last sinkt von 9% auf 6%. Aber die Disk IO schnellt stark nach oben. Damit wird die SSD viel stärker gefordert und deren Lebensdauer sinkt. Ist das normal?
Da wo man nur einen Strich nähe 0 sieht ist jsonl im Einsatz. Die fast 3,5 M sind mit redis.Wegen der 3% CPU-Last hat es wenig Sinn redis zu verwenden - vor allem wenn die SSD so übermäßig belastet wird. Deswegen wieder auf jsonl umgestiegen. Der Wechsel geht ja schnell.
-
@bert-0 sagte in Redis in ioBroker - Überblick:
Hast du eine Idee, wie ich das per Docker so konfigurieren kann, dass die im gleichen Netzwerk sind?
Da gibt es doch so eine schicke Oberfläche in der Container Station, geht das damit nicht?
Unter Docker musst du dein run Befehl um den "network" Parameter ergänzen:
docker run --network=mein_macvlan_netzwerk --ip=192.168.2.x ....
Wie das Netzwerk heißt bekommst du mit
docker network ls
raus. Aber ich bin, was QNAP angeht, völlig ahnungslos und weiß nicht, wie das unter der Haube verdrahtet ist.
-
@dr-bakterius sagte in Redis in ioBroker - Überblick:
Ist das normal?
Das hängt im Wesentlichen davon ab, wie die DB parametriert wurde und wieviel Datenänderungen du an den States hast. Über den "save" Parameter kann man ja sehr genau vorgeben, wie oft gespeichert werden soll.
# Unless specified otherwise, by default Redis will save the DB: # * After 3600 seconds (an hour) if at least 1 change was performed # * After 300 seconds (5 minutes) if at least 100 changes were performed # * After 60 seconds if at least 10000 changes were performed # # You can set these explicitly by uncommenting the following line. # # save 3600 1 600 100 60 10000
Außerdem könnte man auch noch auf "AOF" umstellen. Damit werden alle Änderungen an den Daten immer als kleine Häppchen an die .aof Datei angehängt. In regelmäßigen Abständen (je nach Konfiguration) erfolgt dann ein Umkopieren in die *.rdb Datei. Ob dabei die Schreiblast sinkt, habe ich aber nicht ausprobiert. Ich fand' es charmant, dass die Daten praktisch in Echtzeit weggeschrieben werden, ohne dass jedesmal die rdb-Datei komplett neu erstellt wird.