NEWS
Redis auf dedizierten Server legen
-
@dp20eic @Meister-Mopper Ja, ihr habt ja recht. Ich habe das sogar schon bei iobroker und fhem mit virtuellen NICs auf dem gleichen Host, eben aus dem Grund. Keine Ahnung, warum ich da gleich an Netzwerk als Flaschenhals gedacht habe. Dann muss ich mal schauen, ob ich das morgen auch umsetze.
@ilovegym Warum hast Du oben beim Edit 1 betont, dass es wichtig ist, dass man auch das Redis-Backup einspielt wenn man ein Backuo von iobroker einspielt. Das hatte ich mir als großen Vorteil von getrenntem redis erhofft: dass alle Datenpunkte ihren momentanen Wert behalten, wenn ich nur ein „ältere“ Version von iobroker aus dem Backup hole. Klar, wenn sich die Objektstruktur geändert hat, dann sicher nicht mehr, aber ansonsten sollte es doch egal sein?Gruss, Jürgen
-
Ja, früher war das mal so, aber seit js-Controller 5.x geht es bei mir zumindest nicht mehr…
-
@ilovegym Dann sehe ich allerdings (für mich) keinerlei Vorteil, redis in einen Extra-LXC zu legen. Würde ja dann nur unnötig Mehraufwand zum Administrieren bedeuten, es läuft ein zusätzlicher Container und der ganze Datenverkehr muss zumindest einmal durch den Host, was sicher nicht performanter sein wird, als direkt innerhalb der iobroker-VM. Vielleicht nur im akademischen Grad messbar, aber schneller sicher nicht.
Dann lasse ich es doch grad so weiterlaufen. Danke für die Info.
Gruss, Jürgen
-
@wildbill sagte in Redis auf dedizierten Server legen:
Dann lasse ich es doch grad so weiterlaufen. Danke für die Info.
Moin,
wenn Du noch Ressourcen freihast, dann könnte man ja mal ein neuen Redis LXC bauen und ein neuen
ioBroker
LXC, dann den neuenioBroker
auf den neuen Redis LXC umstellen und mal Backup / Restore versuchen.
Nur mal so eine Idee.VG
Bernd -
@dp20eic Wenn ich mal viel Lust und Liebe habe, mache ich das vielleicht. Aber iobroker muss bei mir in erster Linie eines: performant und stabil laufen, damit alles gesteuert wird, wie es soll. Am produktiven System spiele ich da also nicht rum, wenn ich da eine mögliche zusätzliche Fehlerquelle einbauen könnte.
Vielleicht spiele ich wirklich mal ein Backup vom produktiven in eine neue VM und teste mal…Gruss, Jürgen
-
Also wenn dein Proxmox Server genug Ressourcen hat, dann hast du auf jeden Fall einen Geschwindigkeitsvorteil.
War hier ja auch so, hatte erst Redis in der iobroker-vm, war lahm, dann Redis in einen lxc ausgelagert, jetzt schnurrt es.. -
@ilovegym Nur der Zusammenhang erschliesst sich mir da irgendwie nicht ganz. Wenn redis innerhalb der iobroker-VM auf demselben Proxmox-Host läuft, auf dem ich auch einen separaten redis-LXC laufen lassen würde, dann bleibt die Hardware an sich ja gleich. Ohne separaten redis-LXC eher mit etwas weniger Overhead. Ob ich dann der iobroker-VM beispielsweise 4 CPU-Kerne zuweise, oder sich die VM und ein separater redis-LXC die 4 Kerne teilen sollte doch eher für die Variante ohne separaten LXC sprechen?!
Oder wird redis innerhalb der iobroker-VM immer wieder durch die dort sonst laufenden Prozesse eingebremst?
Ich werde wohl um einen eigenen Test zu gegebener Zeit nicht herumkommen....Gruss, Jürgen
-
also hier war es so, der Redis-Server wurde von den anderen iobroker-tasks eingebremst.. ok, ich hab halt auch ne grosse Installation..
Genau, denke, das kann man mit seiner Umgebung und Installation nur selbst mal austesten, wenn man Zeit und Muse dazu hat.
-
@ilovegym liegt das evtl an der iob VM - ein lxc ist doch flinker - das würde erklären, wrum redis dann flinker ist/wird
ich habe einen iob lxc - da sollte es eigentlich keinen unterschied geben, wenn ich die redis auslagere auf einen anderen lxc
-
@liv-in-sky Also ich glaube (ohne es je direkt verglichen zu haben) dass der „Geschwindigkeits“-Unterschied zwischen Installation als VM oder LXC vielleicht maximal messbar, aber nicht spürbar ist. Einigermaßen potente Hardware vorausgesetzt. Aber das setze ich bei Verwendung von Proxmox mal voraus.
Der Unterschied wird wohl genauso groß sein, als wenn ich für redis einen zusätzlichen LXC verwende, welcher vom Host ja dann auch verwaltet werden muss und etwas Leistung „frisst“.Ihr bringt mich noch dazu, dass ich mein Produktiv-System doch auf abgesetzten redis-LXC für states und objects umbaue zum Testen…
Gruss, Jürgen -
@wildbill
Mit der Installation von Redis in einen LXC sind bei mir zumindest ein paar kleine "was ist den jetzt wieder los" Punkte, die ich mir noch nicht angesehen habe, behoben worden. BWM haben ab und an mal deutlich zu spät reagiert.Läuft aber erst seit gestern, mal sehen.
-
@ticaki Du hast sowohl die objects, als auch die states auf redis, oder?
Gruss, Jürgen
EDIT: Und Du hattest auch vorher schon redis in Gebrauch, nur halt direkt innerhalb iobroker? Denn die Umstellung auf redis hat bei mir damals auch schon einiges beschleunigt.
-
@wildbill
Ich bin seit 4-5 Jahren auf redis mit allem. -
-
@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