Oscam Server mit Loadbalancer: Unterschied zwischen den Versionen
Aus Zebradem WIKI
Zur Navigation springenZur Suche springen
Xing0r (Diskussion | Beiträge) |
Xing0r (Diskussion | Beiträge) |
||
(18 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 12: | Zeile 12: | ||
:Hallo Oscamfangemeinde | :Hallo Oscamfangemeinde | ||
: | : | ||
:Aus gegeben Anlass (Anfrage eines Users hier im [http://www.zebradem.com< | :Aus gegeben Anlass (Anfrage eines Users hier im [http://www.zebradem.com<span style="color:#4876FF;">Forum</span>]) 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. 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> | ||
: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> | :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> | ||
Zeile 40: | Zeile 40: | ||
</div><br> | </div><br> | ||
:Default steht "lb_weight" auf 100. Je höher der Wert ist, um so mehr wird dieser Reader bevorzugt. Ich habe bei allen Lokal Readern "lb_weight = 300" und alle externen Reader haben "lb_weight = 100". Mit lb_weight kann man quasi die ecm Zeiten der Reader verbessern oder verschlechtern (faken). Faken daher, da man dem LB bessere oder schlechtere Zeiten vorgaukelt. Man ändert also nicht wirklich die"original" ecm Zeiten der Reader. Je höher der "lb_weight" Wert ist, um so schneller werden die ecm Zeiten eines Readers. Um so niedriger der Wert, desto langsamer werden die ecm Zeiten eines Readers.<br><br> | :Default steht "lb_weight" auf 100. Je höher der Wert ist, um so mehr wird dieser Reader bevorzugt. Ich habe bei allen Lokal Readern "lb_weight = 300" und alle externen Reader haben "lb_weight = 100". Mit lb_weight kann man quasi die ecm Zeiten der Reader verbessern oder verschlechtern (faken). Faken daher, da man dem LB bessere oder schlechtere Zeiten vorgaukelt. Man ändert also nicht wirklich die"original" ecm Zeiten der Reader. Je höher der "lb_weight" Wert ist, um so schneller werden die ecm Zeiten eines Readers. Um so niedriger der Wert, desto langsamer werden die ecm Zeiten eines Readers.<br><br> | ||
:Wer schon ein bisschen Durchblick hat kann sich auch gerne eine Tabelle von Alno (stb) ansehen --> [http://www.zebradem.com/wiki/images/c/c5/Lb_weight_calc2.png< | :Wer schon ein bisschen Durchblick hat kann sich auch gerne eine Tabelle von Alno (stb) ansehen --> [http://www.zebradem.com/wiki/images/c/c5/Lb_weight_calc2.png<span style="color:#4876FF;">klick_mich</span>] <--. Damit kann man ganz genau einstellen um wieviel Millisekunden die bevorzugten Reader verbessert werden sollen. Die rote Spalte mit "100" ist default (0 Punkt) und spiegelt die "original" Zeiten wieder. Die Zeiten runterwärts sind die tatsächlichen Zeiten des Readers und rüberwärts sind die Werte für lb_value (die gefakten Zeiten). An dem Punkt wo sich die Spalten kreuzen, stehen dann die gefakten Zeiten, nach der Änderung mit lb_weight (abgesehen von der roten Spalte da das die echten Zeiten sind).<br><br> | ||
:Um die Tabelle besser zu verdeutlichen, hatte Alno (stb) dazu ein gutes Beispiel genannt das ich hier 1 zu 1 Zitiere:<br><br> | :Um die Tabelle besser zu verdeutlichen, hatte Alno (stb) dazu ein gutes Beispiel genannt das ich hier 1 zu 1 Zitiere:<br><br> | ||
Zeile 71: | Zeile 71: | ||
== Experteneinstellung == | == Experteneinstellung == | ||
:Folgender Text ist nur für Leute die sich auskennen. Es gibt noch die Möglichkeit den LB ein Feintuning zu unterziehen. Da die default Werte (sind automatisch gesetzt wenn LB aktiv ist und keine weiteren LB Einstellungen eingetragen werden) eigentlich schon perfekt sind, sollte man auf jeden Fall die Finger von lassen, wenn man keinen wirklichen Grund hat diese Einstellungen zu ändern. Wer nicht weiß was er da tut sollte sowieso die Finger von lassen.<BR/><BR/> | :Folgender Text ist nur für Leute die sich auskennen. Es gibt noch die Möglichkeit den LB ein Feintuning zu unterziehen. Da die default Werte (sind automatisch gesetzt wenn LB aktiv ist und keine weiteren LB Einstellungen eingetragen werden) eigentlich schon perfekt sind, sollte man auf jeden Fall die Finger von lassen, wenn man keinen wirklichen Grund hat diese Einstellungen zu ändern. Wer nicht weiß was er da tut sollte sowieso die Finger von lassen.<BR/><BR/> | ||
::* '''<font color=#E5B2FF>lb_nbest_readers = X</font>''' | ::* '''<font color=#E5B2FF>lb_nbest_readers = X</font>''' Damit kann man festlegen wie viel beste Reader der LB wählt. Default ist 1. | ||
::* '''<font color=#E5B2FF>lb_nbest_percaid = caid1:count1,caid2:count2,1702:2</font>''' | ::* '''<font color=#E5B2FF>lb_nbest_percaid = caid1:count1,caid2:count2,1702:2</font>''' Das gleiche wie "lb_nbest_readers", nur hier kann man es für einzelne CAIDs gesondert einstellen. "lb_nbest_readers" bleibt als Globaleinstellung und "lb_nbest_percaid" dient dann zum gezielten einstellen bestimmter CAID'. | ||
::* '''<font color=#E5B2FF>lb_nfb_readers = X</font>''' | ::* '''<font color=#E5B2FF>lb_nfb_readers = X</font>''' Wie viel Fallbackreader der LB wählt. Default 1. | ||
::* '''<font color=#E5B2FF>lb_min_ecmcount = X</font>''' | ::* '''<font color=#E5B2FF>lb_min_ecmcount = X</font>''' Nach wie viel ecm's sich der LB auf einen Reader festlegt. Default ist 5 | ||
::* '''<font color=#E5B2FF>lb_max_ecmcount = X</font>''' | ::* '''<font color=#E5B2FF>lb_max_ecmcount = X</font>''' Nach wie viel ecm's der LB wieder überprüft ob es einen besseren (schnelleren) Reader gibt. Default sind 500. | ||
::* '''<font color=#E5B2FF>lb_reopen_seconds = X</font>''' | ::* '''<font color=#E5B2FF>lb_reopen_seconds = X</font>''' Nach wie viel Sekunden, Reader die nicht geantwortet haben, erneut angefragt werden. Default ist 900. | ||
::* '''<font color=#E5B2FF>lb_retrylimit = X</font>''' (Wert ist in Millisekunden) hiermit kann man unterbinden das der LB nach einer Weile (lb_max_ecmcount) schaut ob es einen "besseren" Reader gibt. Wenn der Reader auf dem sich der LB festgelegt hatte, weiterhin unter 800ms antwortet, sucht er gar nicht erst nach einem "schnelleren" Reader. Nach default 500 ecm's würde der LB erst mal wieder an alle Reader mit der passenden CAID ecm's schicken, um zu sehen ob einer schneller ist. So lang der alte Reader aber weitehrin unter 800ms antwortet, bleibt der LB bei diesem. Default ist 800. | ::* '''<font color=#E5B2FF>lb_retrylimit = X</font>''' (Wert ist in Millisekunden) hiermit kann man unterbinden das der LB nach einer Weile (lb_max_ecmcount) schaut ob es einen "besseren" Reader gibt. Wenn der Reader auf dem sich der LB festgelegt hatte, weiterhin unter 800ms antwortet, sucht er gar nicht erst nach einem "schnelleren" Reader. Nach default 500 ecm's würde der LB erst mal wieder an alle Reader mit der passenden CAID ecm's schicken, um zu sehen ob einer schneller ist. So lang der alte Reader aber weitehrin unter 800ms antwortet, bleibt der LB bei diesem. Default ist 800. | ||
::* '''<font color=#E5B2FF>lb_retrylimits = CAID:time,1702:900</font>''' Das selbe wie bei retrylimit. Nur hier kann man noch Feintuning machen und für einzelne CAIDs eigene Zeiten angeben. Man kann also beide Optionen setzen, "retrylimit" allgemein und "retrylimits" für bestimmte CAIDs (spezifisch). | ::* '''<font color=#E5B2FF>lb_retrylimits = CAID:time,1702:900</font>''' Das selbe wie bei retrylimit. Nur hier kann man noch Feintuning machen und für einzelne CAIDs eigene Zeiten angeben. Man kann also beide Optionen setzen, "retrylimit" allgemein und "retrylimits" für bestimmte CAIDs (spezifisch). | ||
::* '''<font color=#E5B2FF>lb_stat_cleanup = hour</font>''' Nach wieviel Stunden die Statistiken des LBs gelöscht werden. Default = 336. | ::* '''<font color=#E5B2FF>lb_stat_cleanup = hour</font>''' Nach wieviel Stunden die Statistiken des LBs gelöscht werden. Default = 336. | ||
::* '''<font color=#E5B2FF>lb_use_locking = 0|1</font>''' | ::* '''<font color=#E5B2FF>lb_use_locking = 0|1</font>''' Beim aktivieren werden die ecm Anfragen synchronisiert. Die Anfragen werden nicht mehr gleichzeitig verarbeitetet. Das soll vor allem langsamen System helfen mit hoher Last.Denn die ECM requests kommen derart schnell und gleichzeitig rein, dass der Eintrag noch gar nicht im ECM cache ist, wenn der nächste schon bearbeitet wird. Somit verhindert das aktivieren dieser Option, das ECM's die im Cache sind, mehrfach zum Reader geschickt werden. Es kann aber unter Umständen, da Multithreading verhindert wird, zu höheren Antwortzeiten kommen. Default ist 0 | ||
::* '''<font color=#E5B2FF>lb_noproviderforcaid = CAID1,CAID2... '''</font>Der LB legt automatisch für jede CAID die angefragt wird Statistiken an. Bei | ::* '''<font color=#E5B2FF>lb_noproviderforcaid = CAID1,CAID2... '''</font>Der LB legt automatisch für jede CAID und Provider Kombination die angefragt wird Statistiken an. Dies kann man hiermit für bestimmte CAIDs unterbinden. Der Sinn ist folgender: Bei HD+ 1830 zum Beispiel kamen von Camd3 (machen aber auch andere Emus) mal Anfragen über Provider "000000", mal über "003411" oder "008011". Gibt man nun bei dieser Funktion CAID 1830 an werden alle Anfragen über Provider "000000" abgewickelt und es gibt so auch nur Statistiken für 1830:'''000000''':xxxx. So kann man seine Statistiken kleiner halten. Default ist hier nichts gesetzt. | ||
::* '''<font color=#E5B2FF>lb_reopen_mode = 0|1'''</font> Hier legt man fest wie schnell vom LB geblockte Reader wieder freigegeben werden. Mit "0" werden die Reader nach der angegebenen Zeit (lb_reopen_seconds) wieder freigegeben. Stellt man auf "1" werden die geblockten Reader schneller wieder reaktiviert. Default = 0. | |||
::* '''<font color=#E5B2FF>lb_max_readers = limit'''</font> Wenn noch keine Statistiken vorhanden sind oder "lb_max_ecmcount" erreicht wurde, prüft der LB die verfügbaren Reader ob sie einen Sender öffnen können und wie schnell sie das können (ecm time). Dabei werden entweder an alle Reader mit der passenden CAID Anfragen gesendet, oder man setzt hier ein Limit wie viel Reader der LB höchstens "nerven" darf. Default = 0 (unbegrenzt). | |||
::* '''<font color=#E5B2FF>lb_auto_betatunnel = 0|1'''</font> Aktiviert man diesen Parameter muß man sich nicht mehr um die Betatunnel Einträge bei den Usern kümmern. Der LB schickt bei den CAIDs 1834,1801 und 1835 auch eine Anfrage an 1722 beziehungsweise bei CAID 1833 an 1702. Die CAID wo dann zuerst Antwortet wird benutzt. Es werden also <u>nicht</u> nonstop doppelte Anfragen rausgeschickt. Man kann aber auch weiterhin einen eigenen Betatunnel setzen, dieser wird dann bevorzugt. Default ist diese Funktion aktiviert.<br/><br/> | |||
:Alle Einstellungen kommen auch in die oscam.conf [global] Section. | :Alle Einstellungen kommen auch in die oscam.conf [global] Section. |
Aktuelle Version vom 29. April 2011, 18:02 Uhr
![]()
Oscam Server mit Loadbalancer
LB Grundeinstellung
Reader für den LB bevorzugen
Zitat von Alno LB Fallback Einstellung
Meine persönliche Empfehlung (optional):
Experteneinstellung
|