NEWS
Redis, wat issn dat[Gelöst]
-
Ich war immer davon ausgegangen, dass diese States genauso schnell angelegt werden, wie bei einer Neuinstallation.
(Also nach etwa 5 Minuten sollte alles da sein)
je länger ich darüber nachdenke:
Das müssen dann aber auch Datenpunkte sein, die nur selten beschrieben werden.
Da müsste ich dann mal über eine Backupstrategie nachdenken
Oder redis weglassen, obwohl beim RasPi2 war der Performancegewinn deutlich spürbar
Gruß
Rainer
-
Das müssen dann aber auch Datenpunkte sein, die nur selten beschrieben werden. `
Ja, wie z.B. einige Datenpunkte vom Kanal 0 der HM Geräte. -
einige Datenpunkte vom Kanal 0 der HM Geräte. `
und die werden nicht beim Neustart von ioBroker und dem damit verbundenen neustart des hm-rpc neu ausgelesen? :shock:Gruß
Rainer
-
die werden nicht beim Neustart von ioBroker und dem damit verbundenen neustart des hm-rpc neu ausgelesen? `
Bei mir nicht. Ein "LOWBAT" z.B. habe ich noch nie empfangen, da ich die Batterien jedes Jahr austausche. -
Da halte ich gegen!
ich wechsel nicht regelmäßig selber, aber habe auch bei diesen Geräten noch nie ein lowbat gehabt:
:ganzvorsichtigfrag: vielleicht ein Feature von hm-con?
Gruß
Rainer
-
vielleicht ein Feature von hm-con? `
Ich vermute eher, es liegt an einer fehlenden ReGaHss und dem zugehörigen Adapter.Da müsste ich dann mal über eine Backupstrategie nachdenken `
Habe mal in die Redis-Konfiguration /etc/redis/redis.conf geschaut. Ab Zeile 236 steht das:# The filename where to dump the DB dbfilename dump.rdb # The working directory. # # The DB will be written inside this directory, with the filename specified # above using the 'dbfilename' configuration directive. # # The Append Only File will also be created inside this directory. # # Note that you must specify a directory here, not a file name. dir /var/lib/redis ################################# REPLICATION #################################
Mein Vorschlag zur Anpassung:
dbfilename states.rdb
dir /opt/iobroker/iobroker-data
Dann wird die DB beim Backup mit gesichert.
-
Mein Vorschlag zur Anpassung: `
klingt selbst für mich durchführbarDann wird die DB beim Backup mit gesichert. `
Das hört sich dann noch besser an.Werde ich mal ausprobieren und wenn es klappt in den Images übernehmen.
EDIT:
Meine Anleitung sieht jetzt so aus:
` > redis installierenapt-get install redis-server
redis neu konfigurieren:
in /etc/redis/redis.conf ab Zeile 236
The filename where to dump the DB
dbfilename dump.rdb
ändern in:
dbfilename states.rdb
und
Note that you must specify a directory here, not a file name.
dir /var/lib/redis
ändern in:
dir /opt/iobroker/iobroker-data `
ich frage mich nur, ob diese Datei dann auch angelegt wird.Wir werden sehen - habe gerade zwei VMs laufen um anderes zu testen
Danke mal wieder
Rainer
-
Habe gerade beim Durchsehen des RPi-Images vom 1.4.2018 festgestellt, dass Redis fleißig in die Datei /var/log/redis/redis-server.log schreibt. Das dürfte der Performance von Redis und der Lebensdauer des Flash Speichers nicht sehr zuträglich sein.
-
Noch ne Baustelle - Danke!
Aber mit der ersten kommt es schon nicht weiter:
da kommt nichts an.Gruß
Rainer
-
Nachtrag.
Dank deines Hinweises auf das log habe ich gefunden:
Failed opening the RDB file states.rdb (in server root dir /opt/iobroker/iobroker-data) for saving: Read-only file system
ich fürchte dass der Hinweis beim Installieren von Redis, der besagt, dass redis unter dem User redis angelegt wird hier zu diesem Problem führt, dass der User redis keine Schreibrechte auf das Verzeichnis /opt/iobroker/iobroker-data hat
Gruß
Rainer
-
dass der User redis keine Schreibrechte auf das Verzeichnis /opt/iobroker/iobroker-data hat `
Das kann ich mir nicht vorstellen, denn normalerweise haben alle User alle Rechte in diesem Verzeichnis (rwxrwxrwx). -
Daran verzweifel ich auch gerade.
Habe nochmals ein chmod -R 777 /opt/iobroker gemacht.
jetzt sind definitiv alle Dateien rwxrwxrwx
aber diese blöde Meldung kommt immer noch.
das ist aber die einzige Meldung - sonst müllt nichts das log voll.
Ich weiss dass in den Anfängen von ioBroker Couch und redis drin waren und wegen Problemen mit den Rechten erst mal wieder rausfielen.
Aber ich bin mit meinem arg begrenzten Wissen im Moment am Ende.
Kann es daran liegen, dass ich in einer VM arbeite???
Gruß
Rainer
-
dass Redis fleißig in die Datei /var/log/redis/redis-server.log schreibt. `
Habe jetzt auch gefunden was:
705:M 24 Apr 20:40:52.076 * 10 changes in 300 seconds. Saving... 705:M 24 Apr 20:40:52.078 * Background saving started by pid 16516 16516:C 24 Apr 20:40:52.163 * DB saved on disk 16516:C 24 Apr 20:40:52.164 * RDB: 0 MB of memory used by copy-on-write 705:M 24 Apr 20:40:52.178 * Background saving terminated with success 705:M 24 Apr 20:45:53.035 * 10 changes in 300 seconds. Saving... 705:M 24 Apr 20:45:53.036 * Background saving started by pid 16997 16997:C 24 Apr 20:45:53.116 * DB saved on disk 16997:C 24 Apr 20:45:53.118 * RDB: 0 MB of memory used by copy-on-write 705:M 24 Apr 20:45:53.137 * Background saving terminated with success
Also alle 5 Minuten die States auf die "Disk".
so sieht es also mit den default-Werten aus
Gruß
Rainer
-
Habe gerade gelesen, dass Redis eine eigene mount Verwaltung hat: In der Datei /lib/systemd/redis-server.service mit Inhalt:
[Unit] Description=Advanced key-value store After=network.target Documentation=http://redis.io/documentation, man:redis-server(1) [Service] Type=forking ExecStart=/usr/bin/redis-server /etc/redis/redis.conf PIDFile=/var/run/redis/redis-server.pid TimeoutStopSec=0 Restart=always User=redis Group=redis RunTimeDirectory=redis ExecStartPre=-/bin/run-parts --verbose /etc/redis/redis-server.pre-up.d ExecStartPost=-/bin/run-parts --verbose /etc/redis/redis-server.post-up.d ExecStop=-/bin/run-parts --verbose /etc/redis/redis-server.pre-down.d ExecStop=/bin/kill -s TERM $MAINPID ExecStopPost=-/bin/run-parts --verbose /etc/redis/redis-server.post-down.d UMask=007 PrivateTmp=yes LimitNOFILE=65535 PrivateDevices=yes ProtectHome=yes ReadOnlyDirectories=/ ReadWriteDirectories=-/var/lib/redis ReadWriteDirectories=-/var/log/redis ReadWriteDirectories=-/var/run/redis CapabilityBoundingSet=~CAP_SYS_PTRACE # redis-server writes its own config file when in cluster mode so we allow # writing there (NB. ProtectSystem=true over ProtectSystem=full) ProtectSystem=true ReadWriteDirectories=-/etc/redis [Install] WantedBy=multi-user.target Alias=redis.service
Vielleicht genügt es
ReadWriteDirectories=-/opt/iobroker/iobroker-data
hinzuzufügen und den Redis-Service neu zu starten ?
-
Habe gerade gelesen, dass Redis eine eigene mount Verwaltung hat: In der Datei /lib/systemd/redis-server.service mit Inhalt:
[Unit] Description=Advanced key-value store After=network.target Documentation=http://redis.io/documentation, man:redis-server(1) [Service] Type=forking ExecStart=/usr/bin/redis-server /etc/redis/redis.conf PIDFile=/var/run/redis/redis-server.pid TimeoutStopSec=0 Restart=always User=redis Group=redis RunTimeDirectory=redis ExecStartPre=-/bin/run-parts --verbose /etc/redis/redis-server.pre-up.d ExecStartPost=-/bin/run-parts --verbose /etc/redis/redis-server.post-up.d ExecStop=-/bin/run-parts --verbose /etc/redis/redis-server.pre-down.d ExecStop=/bin/kill -s TERM $MAINPID ExecStopPost=-/bin/run-parts --verbose /etc/redis/redis-server.post-down.d UMask=007 PrivateTmp=yes LimitNOFILE=65535 PrivateDevices=yes ProtectHome=yes ReadOnlyDirectories=/ ReadWriteDirectories=-/var/lib/redis ReadWriteDirectories=-/var/log/redis ReadWriteDirectories=-/var/run/redis CapabilityBoundingSet=~CAP_SYS_PTRACE # redis-server writes its own config file when in cluster mode so we allow # writing there (NB. ProtectSystem=true over ProtectSystem=full) ProtectSystem=true ReadWriteDirectories=-/etc/redis [Install] WantedBy=multi-user.target Alias=redis.service
Vielleicht genügt es
ReadWriteDirectories=-/opt/iobroker/iobroker-data
hinzuzufügen und den Redis-Service neu zu starten ? `
Wäre einen Versuch eert -
dass Redis eine eigene mount Verwaltung hat: In der Datei /lib/systemd/redis-server.service `
Ich habe diese Datei nicht.Habe allerdings ioBroker noch nicht auf redis umgestellt.
Vielleicht wird die dann erst erstellt???
Gruß
Rainer
-
Habe die Datei gefunden - liegt unter
> /lib/systemd/****system/****redis-server.service
Habe gerade geändert, und da ich nicht weiß wie man den service neu startet habe ich rebootet
Gruß
Rainer
-
zuerst gab es weiter den Fehler mit dem permission Error.
Ein erneutes
chmod 777 -R /opt/iobroker
brachte dann
und da war dann die Datei:
Gruß
Rainer
-
-
Funktioniert es jetzt mit der rdb-Datei in /opt/iobroker/iobroker-data ? `
Ja!alle 5 Minute werden die states da hineingeschrieben.
Gruß
Rainer