NEWS
Redis auf dedizierten Server legen
-
-
@martybr Als Master musst Du natürlich weiterhin die IP des iobroker-Master angeben. Nur bei states und objects musst Du dann natürlich die IP des redis-Servers angeben, je nachdem ob Du beim Master die objects, die states oder beides auf dem redis-server hast. Und bei slaves die Frage nach Migration verneinen, soweit ich noch weiß.
Gruss, Jürgen
-
@wildbill
Ich wiederhole das mal mit meinen Worten:
Ich habe einen Master mit der IP *.100
Zwei Slaves mit der IP *.18 und *.113Der Redis hat die IP *.115
Master:
iob setup custom:
Hier setze ich bei Objects die IP auf 127.0.0.1 und bei States die IP *.115
Bei den Slaves setze ich Object auf *.100 und States auf *.115Richtig?
Vorher kopiere ich die Redis dump Datei vom Master auf den Redis Server und verneine die Migration.
-
@martybr Kann ich Dir leider nicht zu 100% sagen, aber ich würde sagen, es passt so, wie Du es vor hast. Die objects willst Du dann auf file (oder jsonl) lassen direkt auf dem Master, dann müssen die Slaves auch für die objects dahin verbinden. Und für die states auf den redis-server, den da legt es ja der Master ab.
Redis aus /var/log/redis auf den neuen server kopieren (wenn iobroker gestoppt ist!), die config kopieren aus /etc/redis kopieren oder manuell anpassen und anschliessend mit dem Master anfange mit iob setup custom. Danach die Slaves nachziehen. So müsste es, meiner Meinung nach, klappen. Aber ohne Gewähr. Versuch macht kluch…BTW: Da ich immer noch am Überlegen bin, ob ich umziehe. Wenn ich schon einen extra redis-server aufsetze, würde (werde) ich auch die objects dahin migrieren. Dann ist alles beisammen.
Gruss, Jürgen
-
@wildbill
Hauptgrund weshalb ich es gemacht habe, ich möchte mit dem iobroker in einen LXC umziehen, brauche aber priviligiert wegen SMB und dadrin geht Redis nur wenn man nesting an macht. Rein von der Sicherheit könnte ich dann aber den iobroker auch gleich auf dem Host installieren. -
@wildbill
Ich habe es gemacht !
Der Redis läuft nun auf einen dedizierten eigenen LXC Server. Über iobroker setup custom habe ich den Server eingetragen. Vorher natürlich die redis.dump dort reimkopiert.Bei den Slave Servern ist iobroker setup custom abgebrochen: Fehlermeldung: Konnte (alten) Redis-Server nicht erreichen.
Lösung: Ich habe in der iobroker.jsonl bei States die neue IP des Redis Server eingetragen.
Nun läuft das Gesamtsystem wieder. Gefühlt ist die Reaktionszeit/Performance besser geworden. Heute Nachmittag werde ich auch die Objekte auf Redis umstellen.Ich habe ca. 50.000 States und 50.000 Objekte.
Danke für deine Unterstützung. Die Umstellung betraf / betrifft mein Produktiv System, da bin ich immer sehr vorsichtig.
-
Hab nun auch den Umstieg gewagt auf einen separaten LXC mit redis und auch gleich objects, sowie states auf redis gelegt. Ging alles problemlos.
Habt Ihr für states und redis separate Instanzen des redis-server? Die in der Doku verlinkte Anleitung ist für Ubuntu 16.04 und 6 Jahre alt. Ich habe erst einmal nun alles in eine Instanz gelenkt.
Mal schauen, wie es läuft…Gruss, Jürgen
-
nee, nur eine Redis-Instanz, da ist alles drin. Waere mal zu testen, was das bringt..
-
@ilovegym Hauptsache läuft erstmal. Negative Auswirkungen bemerke ich bislang nicht. Alles flutscht, wie gehabt. Ob schneller oder responsiver ist schwer zu sagen, ging auch vorher so gut wie alles recht flott.
Systemlast unter Proxmox in Summe (also für den Host) unverändert, soweit sich das erkennen lässt.Gruss, Jürgen
-
@ilovegym
Kann mir nicht vorstellen dass das was bringt... aber hätte auch nicht gedacht das ein extra Redis LXC was bringt. -
@ticaki Vermutlich bringt es eher was im Hinblick auf die Schreiblast. Die eine größere Datei wird vermutlich öfter geschrieben, als bei getrennten Dateien, von denen sich eine nicht oft ändert. Aber ich lasse mal jetzt so laufen und beobachte weiter.
Gruss, Jürgen
-
es gibt auch das command "redis-benchmark" ich hatte im August dazu was geschrieben, da war mein System noch etwas verspielter..
Commando zum testen:
redis-benchmark -h redis-serverIP -q -n 100000
also bei mir dann
redis-benchmark -h 10.1.1.1 -q -n 100000
-
@ilovegym Ich habe es mal testen lassen, allerdings bei laufendem iobroker, will die Haussteuerung nicht schon wieder anhalten deshalb. Schaut aber glaub ganz OK aus:
redis-benchmark -h 10.10.10.194 -q -n 100000 PING_INLINE: 23223.41 requests per second, p50=0.935 msec PING_MBULK: 24437.93 requests per second, p50=0.855 msec SET: 23663.04 requests per second, p50=0.911 msec GET: 24727.99 requests per second, p50=0.823 msec INCR: 23809.53 requests per second, p50=0.879 msec LPUSH: 23030.86 requests per second, p50=0.927 msec RPUSH: 22883.29 requests per second, p50=0.983 msec LPOP: 21777.00 requests per second, p50=0.975 msec RPOP: 23507.29 requests per second, p50=0.983 msec SADD: 25412.96 requests per second, p50=0.871 msec HSET: 19964.06 requests per second, p50=1.063 msec SPOP: 24497.80 requests per second, p50=0.927 msec ZADD: 17448.96 requests per second, p50=1.279 msec ZPOPMIN: 21791.24 requests per second, p50=0.959 msec LPUSH (needed to benchmark LRANGE): 24431.96 requests per second, p50=0.895 msec LRANGE_100 (first 100 elements): 15206.81 requests per second, p50=1.527 msec LRANGE_300 (first 300 elements): 8387.85 requests per second, p50=2.983 msec LRANGE_500 (first 500 elements): 6106.50 requests per second, p50=4.135 msec LRANGE_600 (first 600 elements): 5144.30 requests per second, p50=4.767 msec MSET (10 keys): 20218.36 requests per second, p50=1.279 msec
Wenn iobroker mal irgendwann gestoppt ist und ich dran denke, teste ich nochmal.
Gruss, Jürgen
EDIT: Ach ja, CPU-Last für die iobroker-VM ging von 10 auf gute 40% hoch und danach wieder zurück. Ist also noch Luft da...
-
Was ich vorhin noch schreiben wollte und glatt vergessen habe: An alle, die redis auf einen eigenen LXC oder eine eigene Maschine umziehen:
In der iobroker-VM/-LXC/_Maschine nicht vergessen, den redis-server zu stoppen. Der muss da nicht mehr mitlaufen. Kann man auch deinstallieren, die redis-tools sollten reichen.sudo systemctl stop redis-server sudo systemctl disable redis-server
Gruss, Jürgen
EDIT: Und natürlich im Backitup auch umstellen auf Remote. IP vom neuen LXC rein, Port 6379 und User redis. Passwort (bei mir) leer. Und ein Testlauf, ob es auch läuft, schadet auch nix.
-
@wildbill
Kann man machen, aber ich sichere meine ganzen LXC's. Denke doch das das auch für einen Umzug ausreichend ist. Oder?EDIT: Das schreibe ich und mein nächster Gedankengang ist dann: doppelt hält besser - habs umgestellt
-
@ticaki Ich sichere auch regelmäßig alles direkt aus Proxmox heraus auf einen Proxmox-Backup-Server und zusätzich auf mein Synology NAS. Dennoch habe ich Backitup auch in Gebrauch. Die Sicherungen in Proxmox haben halt den nachteil, dass wirklich ALLES mitgesichert wird, also auch etwaige Problem, die man eine Zeit lang mitschleppt und die irgendwann zuschlagen. Mit den zusätzlichen backups aus dem Adapter lässt sich iobroker im Ernstfall dann auf einem jungfräulichen System wieder aufsetzen ohne die ganzen Altlasten mitzuschleppen. Sicher ist sicher.
Ich trage ja schließlich auch ab und zu Hosenträger und Gürtel und binde zur Sicherheit noch eine Schnur um...Gruss, Jürgen
-
@ilovegym
Ich habe heute den Benchmark nochmal laufen lassen, nachdem iobroker zwecks update eh gestoppt war:redis-benchmark -h 10.10.10.194 -q -n 100000 PING_INLINE: 30102.35 requests per second, p50=0.823 msec PING_MBULK: 27034.33 requests per second, p50=0.959 msec SET: 27196.08 requests per second, p50=1.007 msec GET: 28960.32 requests per second, p50=0.887 msec INCR: 27322.40 requests per second, p50=0.815 msec LPUSH: 29481.13 requests per second, p50=0.887 msec RPUSH: 27337.34 requests per second, p50=0.959 msec LPOP: 27449.90 requests per second, p50=0.927 msec RPOP: 26288.12 requests per second, p50=0.999 msec SADD: 26702.27 requests per second, p50=0.975 msec HSET: 27137.04 requests per second, p50=0.967 msec SPOP: 29629.63 requests per second, p50=0.863 msec ZADD: 26766.60 requests per second, p50=0.975 msec ZPOPMIN: 28019.05 requests per second, p50=0.919 msec LPUSH (needed to benchmark LRANGE): 29949.09 requests per second, p50=0.791 msec LRANGE_100 (first 100 elements): 19630.94 requests per second, p50=1.359 msec LRANGE_300 (first 300 elements): 9054.69 requests per second, p50=2.887 msec LRANGE_500 (first 500 elements): 6617.70 requests per second, p50=3.935 msec LRANGE_600 (first 600 elements): 6332.72 requests per second, p50=4.423 msec MSET (10 keys): 27723.87 requests per second, p50=0.975 msec
Gruss, Jürgen