Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

loadbalance erklärung

    Nobody is reading this thread right now.
G

Gelöschtes Mitglied 136430

Guest
Hallo,

ich hab da eine Frage. Ich verwende momentan Oscam + CCcam
Bei CCcam ist ja das problem, wenn ich z.B 10peers habe, die beispiel Sky DE haben, nehmen dann meine Clients, immer nur von einem server, der wo natürlich die schnellste reaktionszeit vom server kriegt. Dass ist ja aber blöd, weil es kann sein das der server schnell reagiert aber die karten vom Server ziemlich hoch sind (ecm). Dass heißt man kan 50000 Peers haben wo SKY DE anbieten, alle clients gehen nur auf einmem.

Zum Thema, kann dieses Problem mit Loadbalance gelöst werden oder habe ich da was falsch verstanden?

THX
 
AW: loadbalance erklärung

na nee... das LB funktioniert soweit nur mit lokal verfügbaren Karten, jedenfalls soweit ich weiss...

im Betrieb sollte die CC das selber feststellen und verteilen können, sobald die Antwortzeiten hochgehen, fehlts ja auch an der schnellen Reaktion & der nächste peer sollte abgefragt werden
 
AW: loadbalance erklärung

Ok, da der link wohl nicht gestattet war...
Jedenfalls ist es so:

Der lb im CCcam arbeitet lokal only.
Der lb im OCcam arbeitet global.
Allerdings kann ich mit lb_weight karten bevorzugen.
 
AW: loadbalance erklärung

na nee... das LB funktioniert soweit nur mit lokal verfügbaren Karten, jedenfalls soweit ich weiss...

im Betrieb sollte die CC das selber feststellen und verteilen können, sobald die Antwortzeiten hochgehen, fehlts ja auch an der schnellen Reaktion & der nächste peer sollte abgefragt werden

wie schon reppo sagte, das oscam arbeitet global sprich du kannst alle proxys die in deiner oscam.server eingebunden sind für das LB nutzen.

@sonic: du kannst das LB auch so einstellen, dass nicht der schnellste reader antwortet sondern der "älteste", also der der am längsten nicht geantwortet hat. ist allerdings nur bei lokalen karten empfehlenswert!
 
AW: loadbalance erklärung

Hallo,

das CCcam Lokal arbeitet und Oscam Global wusste ich ja, die frage ist jetzt aber, wenn ich nur Oscam laufen lasse und kein CCcam sondern das CCcam protokoll im Oscam integriere, läuft das das LB global auch auf meine Server von meinen Peers oder auch nur auf meine lokale Karten?`Sonst wärs ja irgendwie schwachsinn?
 
AW: loadbalance erklärung

Guuuut das wollte ich hören.

Ich habe 2 Lokale und rest alles sharepartner. Welchen mode würdet ihr mir epfehlen`? Die 1?
 
AW: loadbalance erklärung

Oscam Server mit Loadbalancer

Hallo Oscamfangemeinde
Aus gegeben Anlass ein kleiner Ausflug ins Reich von Oscam und sein Loadbalancer. Habe in folgendem Text, Faulheits bedingt, Loadbalancer durch LB abgekürzt.

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.

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.

LB Grundeinstellung

Die LB Einstellungen kommen im Oscam, in die oscam.conf unter [global]: lb_mode = 1 lb_save = 100 lb_savepath = /tmp/.oscam/stat
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.

lb_mode - Hiermit wird LB überhaupt aktiviert. Es gibt 5 Einstellmöglichkeiten unter lb_mode.


  • 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 = 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.
lb_save - 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. 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.

lb_savepath = /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.

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.

Reader für den LB bevorzugen

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:

lb_weight = X

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.

Wer schon ein bisschen Durchblick hat kann sich auch gerne eine Tabelle von Alno (stb) ansehen --> <--. 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).

Um die Tabelle besser zu verdeutlichen, hatte Alno (stb) dazu ein gutes Beispiel genannt das ich hier 1 zu 1 Zitiere:

Zitat von Alno

Du hast 2 Reader die beide eine durchschnittliche Antwortzeit von 400ms haben. Nun möchtest Du aber einen Reader bevorzugen indem Du dem Loadbalancer 300ms vorgaukeln willst. Also suchst Du die Zeile die mit 400 beginnt und wanderst auf dieser Zeile nach rechts bis du bei ~300 (in der tabelle findest du nur 308) bist. Dann liest Du oben den Wert für lb_value (fake Zeit) ab den der Reader bekommt (130). Diesen trägst Du bei dem Reader ein und schon wird der Reader bevorzugt.

LB Fallback Einstellung

Sollte man noch Reader mit "fallback = 1" in der oscam.server haben, kann man das mit aktiven LB auch entfernen, da dies nun ignoriert wird. Der LB legt selber fest welcher Reader fallback wird. Die Fallback timeout in der oscam.conf unter [global] kann man allerdings weiterhin nutzen. Der LB fällt dann auf seinen selbst definierten Fallbackreader zurück, sobald die Fallbacktime überschritten wurde. Das heißt, liegt die Antwortzeit der Karte über der angegeben Zeit, z.b. 2,5 Sekunden, wechselt der LB auf eine andere Karte.

fallbacktimeout = 2600

Ich habe einen sehr hohen Wert drin, so bleibt er noch bis 2,6 Sekunden auf einer Karte bevor er zu nächsten wechselt. Die meisten nutzen einen Wert zwischen 2000ms und 2500ms.

Meine persönliche Empfehlung (optional):



oscam.conf

lb_mode = 1
lb_save = 100
lb_savepath = /usr/local/etc/.oscam/stat
fallbacktimeout = 2600

oscam.server (Reader)

lb_weight = 300 # für lokal Reader
lb_weight = 100 # für externe Reader

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.


  • lb_nbest_readers = X Damit kann man festlegen wie viel beste Reader der LB wählt. Default ist 1.
  • lb_nbest_percaid = caid1:count1,caid2:count2,1702:2 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'.
  • lb_nfb_readers = X Wie viel Fallbackreader der LB wählt. Default 1.
  • lb_min_ecmcount = X Nach wie viel ecm's sich der LB auf einen Reader festlegt. Default ist 5
  • lb_max_ecmcount = X Nach wie viel ecm's der LB wieder überprüft ob es einen besseren (schnelleren) Reader gibt. Default sind 500.
  • lb_reopen_seconds = X Nach wie viel Sekunden, Reader die nicht geantwortet haben, erneut angefragt werden. Default ist 900.
  • lb_retrylimit = X (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.
  • lb_retrylimits = CAID:time,1702:900 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).
  • lb_stat_cleanup = hour Nach wieviel Stunden die Statistiken des LBs gelöscht werden. Default = 336.
  • lb_use_locking = 0|1 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
  • lb_noproviderforcaid = CAID1,CAID2... 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.
  • lb_reopen_mode = 0|1 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.
  • lb_max_readers = limit 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).
  • lb_auto_betatunnel = 0|1 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 nicht nonstop doppelte Anfragen rausgeschickt. Man kann aber auch weiterhin einen eigenen Betatunnel setzen, dieser wird dann bevorzugt. Default ist diese Funktion aktiviert.
Alle Einstellungen kommen auch in die oscam.conf [global] Section. Fehlen diese Einstellungen in der Config und der LB ist aktiviert, werden die Default Werte benutzt.


Quelle: xing0r @zebradem wiki
 
Zuletzt bearbeitet von einem Moderator:
AW: loadbalance erklärung

Ja die seite kannte ich schon, aber ich weiss halt net welche set mode für mich am besen geeignet, sind, desshalb wollte ich da ne erfahrung hören!

ABer danke trotzdem:dance3:
 
AW: loadbalance erklärung

Merci =)

Zu dem Thema
lb_weight

hab ich da noch ne frage.
EXT Reader heißt quasi der Server wo ich Karten bekomme und nicht meine Lokale.

Dann müsste ich quasi so machen (

[reader]
label = MEINE LOKALE KARTE
enable = 1
protocol = cccam
device = dyndns.com,12000
account = user
password = passwd
reconnecttimeout = 30
group = 1
cccversion = 2.1.4
cccmaxhops = 2
cccmindown = 1
cccwantemu = 0
ccckeepalive = 1
lb_weight = 300


und die wo ich von meinen sharepartner bekomme:

[reader]
label = Sharepartner 1
enable = 1
protocol = cccam
device = dyndns.com,12000
account = user
password = passwd
reconnecttimeout = 30
group = 1
cccversion = 2.1.4
cccmaxhops = 2
cccmindown = 1
cccwantemu = 0
ccckeepalive = 1
lb_weight = 100

Ist das so richtig mit dem lb weight?

Wie ist es eigentlich mit der cccversion? Ist es da egal was man reinschreibt?
 
AW: loadbalance erklärung

Hallo liebe Boardgemeinde,
Hab ne kleine Frage zu diesem Thema :
Hab 2 Anbieter C-Lines. Anbieter X möchte ich nur für Caid x benutzen und Anbieter Y nur für Caid Y oder alle anderen Caids.
Wie mache ich das genau ??

Hab an diese Variante gedacht :

Bei Anbieter X :
lb_mode = 1
lb_save = 100
lb_weight = 100
lb_nbest_readers = 2
lb_savepath = var/tmp/oscam.stat
lb_max_readers = 0
lb_autp_betatunnel = 1
lb_nbest_percaids = 0100:4

Bei Anbieter Y :
lb_mode = 1
lb_save = 100
lb_weight = 100
lb_nbest_readers = 2
lb_savepath = var/tmp/oscam.stat
lb_max_readers = 0
lb_autp_betatunnel = 1
lb_nbest_percaids = 0100:4,0200:3,03:2,04:1

Wo ich wiederum die CAIDS mit den digits nicht geneau verstehe !!

Bitte um Hilfe
 
Zurück
Oben