NEWS
Redis auf dedizierten Server legen
-
@wildbill sagte in Redis auf dedizierten Server legen:
vergleichsweise langsamere Netzwerk
Moin,
soweit ich
Proxmox
verstehe, sollte da nichts den Node verlassen, erst wenn Du ein HA Cluster hast und ein LXC oder eine VM spricht mit dem Partner Node, verlässt es den lokalen Node und nutzt das Netzwerkkabel, oder etwas läuft außerhalb von Proxmox, dann auch.Du kannst aber auf dem Node weitere virtuelle Schnittstellen
vmbr1, vmbr2, ..
anlegen ohne physisches Deviceeth
und die LXCs, VMs damit verbinden.VG
Bernd -
@wildbill sagte in Redis auf dedizierten Server legen:
Nach dem Auslagern müsste das dann über das Netzwerk laufen, was da, eventuell, ja durchaus einen Flaschenhals darstellen könnte, wenn die Daten dann durch das, im direkten Vergleich, viel langsamere Netzwerk müssen.
Vielleicht verstehe ich es ja falsch, aber wenn der redis lxc auf dem gleichen node wie der ioBroker (vm/lxc) läuft geht doch nichts aus der Kiste raus. Was soll da bremsen?
-
@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.