Oscam Server mit Loadbalancer: Unterschied zwischen den Versionen
Aus Zebradem WIKI
Zur Navigation springenZur Suche springen
Keine Bearbeitungszusammenfassung |
Xing0r (Diskussion | Beiträge) |
||
Zeile 12: | Zeile 12: | ||
Hallo Oscamfangemeinde | Hallo Oscamfangemeinde | ||
: | : | ||
:Aus gegeben Anlass (Anfrage eines Users hier im Board) ein kleiner Ausflug ins Reich von Oscam und sein Loadbalancer. | :Aus gegeben Anlass (Anfrage eines Users hier im Board) ein kleiner Ausflug ins Reich von Oscam und sein Loadbalancer. Habe in folgendem Text, Faulheits bedingt, Loadbalancer durch LB abgekürzt.<br><br> | ||
:Durch den LB ist es möglich die Lasten des Server, gerade zu Stoßzeiten, auf mehrere gleiche Karten zu verteilen. Damit man möglichst immer die schnellsten Antwortzeiten bekommt. Gerade wenn viele unterschiedliche Sender auf verschiedenen Transpondern genutzt werden, kann es zu sehr hohen Antwortzeiten des Server (Karte) kommen. Wenn man nun zwei mal die selbe Karte im Server hat, überprüft der LB die Antwortzeiten beider Karten und schickt die Anfragen an die Karte mit der niedrigsten Antwortzeit.<br><br> | |||
:Durch den LB ist es möglich die Lasten des Server, gerade zu Stoßzeiten, auf mehrere gleiche Karten zu verteilen. | :Man sollte aber wissen das der LB im Oscam global arbeitet. Es werden immer alle Reader einbezogen. Das heißt, wenn man Cline's von CCcam Servern eingebunden hat, werden auch diese mit einbezogen. Auch die Karten die der CCcam Server auf hop1/2/3 ... hat. Genauso werden auch newcamd und camd3 Reader vom LB mit benutzt.<br><br> | ||
= LB Grundeinstellung = | |||
:Man sollte aber wissen das der LB im Oscam global arbeitet. Es werden immer alle Reader einbezogen. | |||
:Die LB Einstellungen kommen im Oscam, in die oscam.conf unter [global]: | :Die LB Einstellungen kommen im Oscam, in die oscam.conf unter [global]: | ||
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; "> | <div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; "> | ||
:lb_mode = 1 | :lb_mode = 1 | ||
:lb_save = 100 | :lb_save = 100 | ||
:lb_savepath = /tmp/.oscam/stat | |||
</div> | </div> | ||
:Normal würde die erste Zeile "lb_mode" schon reichen um LB zu aktivieren. Ich rate aber jedem "lb_save = 100" auch noch zu setzen.<br><br> | :Normal würde die erste Zeile "lb_mode" schon reichen, um LB zu aktivieren. Ich rate aber jedem "lb_save = 100" auch noch zu setzen.<br><br> | ||
:<FONT COLOR=RED>lb_mode</FONT> - Hiermit wird LB überhaupt aktiviert. Es gibt | :<FONT COLOR=RED>lb_mode</FONT> - Hiermit wird LB überhaupt aktiviert. Es gibt 5 Einstellmöglichkeiten unter lb_mode.<br><br> | ||
::* lb_mode = 0 damit ist LB deaktiviert (default) | ::* '''lb_mode = 0''' damit ist LB deaktiviert (default) | ||
::* lb_mode = 1 fastest reader first, hier wird immer der schnellste Reader (kleinste Antwortzeit) benutzt | ::* '''lb_mode = 1''' fastest reader first, hier wird immer der schnellste Reader (kleinste Antwortzeit) benutzt | ||
::* lb_mode = 2 oldest reader first, kann ein bisschen verwirren wegen ältesten Reader zuerst. Ist aber eigentlich simple, denn hier werden die Anfragen abwechselnd an die Reader geschickt. | ::* '''lb_mode = 2''' oldest reader first, kann ein bisschen verwirren wegen ältesten Reader zuerst. Ist aber eigentlich simple, denn hier werden die Anfragen abwechselnd an die Reader geschickt. Hat man zwei Karten geht Anfrage 1 an Karte 1. Anfrage zwei geht an die zweite Karte da sie nun am längsten nichts bekommen hat. Anfrage 3 geht wieder an die erste Karte da sie nun am längsten nicht geantwortet hat usw. Hat man 3 Karten gehen die Anfragen abwechselnd an Karte eins dann zwei dann drei, nun wieder 1;2;3. | ||
::* '''lb_mode = 3''' lowest usage level, hier wird eine Durchschnitts Antwortzeit aus 5 ecm's berechnet und der Reader mit der niedrigsten Auslastung wird genommen. | |||
::* '''lb_mode = 10''' logging only, der LB ist deaktiviert aber sammelt trotzdem Statistiken. Schaltet man irgend wann von z.b. lb_mode "10" auf "1", kennt der LB die aktuell schnellste Karte, da er ja im Hintergrund fleißig die Statistiken erstellt hat.<br><br> | |||
::* lb_mode = 3 lowest usage level, hier wird eine Durchschnitts Antwortzeit aus 5 ecm's berechnet und der Reader mit der niedrigsten Auslastung wird genommen.<br><br> | |||
:<FONT COLOR=RED>lb_save</FONT> - Default (man setzt keine "lb_save" Zeile in die config) ist "lb_save" mit "0" deaktiviert. | :<FONT COLOR=RED>lb_save</FONT> - Default (man setzt keine "lb_save" Zeile in die config) ist "lb_save" mit "0" deaktiviert. | ||
:Durch "lb_save" werden die gesammelten Statistiken des LB's gespeichert. Damit er nach einem Neustart des Oscam Servers, direkt wieder darauf zugreifen kann. | :Durch "lb_save" werden die gesammelten Statistiken des LB's gespeichert. Damit er nach einem Neustart des Oscam Servers, direkt wieder darauf zugreifen kann. Der LB überprüft die Antwortzeiten der Karten und mit lb_save werden diese Werte gespeichert. Nach einem Neustart von Oscam greift der LB nun auf diese gespeicherten Statistiken zurück und muß nicht erst neue Statistiken erstellen. Mit "lb_save = 100" werden jede 100 ecm's diese Antwortzeiten gespeichert. 100 ist Minimum. Man kann aber auch mehr setzen (200, 300 ....). Gerade bei sehr leistungsschwachen Geräten, auf denen Oscam läuft, sollte man vielleicht nicht allzu häufig speichern. Dann bietet sich ein Wert von z.b. 500 ecm's an.<br><br> | ||
:<FONT COLOR=RED>lb_savepath </FONT>= /tmp/.oscam/stat ist default. Hier kann man einstellen wohin der LB seine Statistiken speichert. Default Ordner ist eigentlich gut geeignet. | :<FONT COLOR=RED>lb_savepath </FONT>= /tmp/.oscam/stat ist default. Hier kann man einstellen wohin der LB seine Statistiken speichert. Default Ordner ist eigentlich gut geeignet. | ||
:Wenn man aber seinen Server (also das Gerät selber: PC, Dream oder was auch immer) öfter mal rebootet, ist /tmp nicht geeignet, da alles was in /tmp liegt beim reboot gelöscht wird.<br/><br/> | :Wenn man aber seinen Server (also das Gerät selber: PC, Dream oder was auch immer) öfter mal rebootet, ist /tmp nicht geeignet, da alles was in /tmp liegt beim reboot gelöscht wird.<br/><br/> | ||
:Ich selber nutze | :Ich selber nutze lb_mode = 1, damit hab ich die beste Erfahrung gemacht. lb_mode = 2 würde ich nur Leuten empfehlen die keine externen Reader eingebunden haben, sondern nur Lokal Karten. lb_mode = 3 ist zwar :auch empfehlenswert aber hier kann ich meine Lokal Karten nicht bevorzugen. Es werden also selbst wenn man zwei gleiche Karten im Server hat sehr oft externe Karten benutzt, weil sie vielleicht gerade schneller sind. Nur weil meine Lokal Karten Beispielsweise gerade Antwortzeiten um die 1500ms haben und eine externe Karte eines Sharepartners nur 1000ms, möchte ich dennoch nicht das nun der LB die Karte des Sharepartners nutzt weil sie 500ms schneller ist. Im großen und ganzen gesehen ist das für den wo den Sender gerade anfragt zwar schön das er immer Sau niedrige ecm Zeiten hat, aber ich persönlich halte nichts davon wegen eine halben Sekunde Zeitersparnis die Karten meiner Sharepartner zu nutzen obwohl ich sie selber habe.Aber das muß jeder für sich selber wissen. Mode 3 empfehle ich nur wenn z.b. alle Sharepartner Oscam nutzen und alle LB Mode 3 nutzen und alle Bescheid wissen. Im LB Mode 2 sehe ich wie gesagt nur den Sinn drin wenn man keine externen Karten eingehängt hat da man hier meines Wissens auch keine Reader bevorzugen kann.<br><br> | ||
:Mit lb_mode = 1 kann man bestimmte Reader bevorzugen (im normal Fall die Lokal Reader). Dies tut man in der oscam.server. Bei den Readern die bevorzugt werden sollen, kommt folgendes dazu: | :Mit lb_mode = 1 kann man bestimmte Reader bevorzugen (im normal Fall die Lokal Reader). Dies tut man in der oscam.server. Bei den Readern die bevorzugt werden sollen, kommt folgendes dazu: | ||
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; "> | <div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; "> |