Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenloses 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 Bereiche, welche für Gäste verwehrt bleiben

emmcache Verständnisfrage

geohei

Hacker
Registriert
8. Januar 2011
Beiträge
398
Reaktionspunkte
17
Punkte
78
Hallo.

emmcache = <usecache>,<rewrite>,<logging>,<stb-emm>

Ich habe da einmal eine Verständnisfrage bzgl. dem emmcache.

Wenn usecache != 0 ist, dann werden alle EMMs ja im RAM gespeichert. Bei jedem neuen EMM wird dieses dann mit allen (!) bereits gespeicherten EMMs verglichen und erst dann weitergeleitet/verarbeitet, wenn es neu ist. Wenn es bereits vorhanden ist, geht es ins Nirwana. Das sollte ja der Sinn des emmcaches sein.

Diese Zwischenspeicherung kostet Speicher, und der Überprüfung ob eingetroffenes EMM bereits vorhanden ist oder nicht kostet CPU Power. Wenn viele EMMs ankommen kann dies nach Tagen zur Instabilität bzw. des Crashes des Hosts führen.

Ist das richtig?

VG
 
Zuletzt bearbeitet:
Vermutlich werden nur die Hashes der EMMs gespeichert. So macht Oscam es bei den ECMs.

Das Vergleichen mit dem Speicher ist ein Klacks. Das bringt keinerlei Instabilitäten. Da wird auch nach Monaten nichts wackelig. Sonst könnte man die ganzen Computer schlicht in die Tonne hauen.
 
Wenn man einen kleinen Rechner (z.B. Raspi, ...) benutzt, dann kann man anhand von ...

Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

... beispielsweise schön sehen wie die das RAM voll Wird. Mit einer V14 fallen etwa 50 MB pro Tag an (fast alles EMM-G). Mit dem Anstieg des Speichers steigt auch der CPU load. Bei 20% Speicherverbrauch werden die ECM Zeiten sichtbar höher und das System instabil.

Bei meiner HD+ Karte fallen beispielsweise 20x weniger EMMs an als bei der V14.

Kann mir das jemand mit den 50 MB bei einer V14 bitte bestätigen.

Man brauch aber nur emmcache = 2,... auf einer Dreambox DM800se zu setzen, und schon beobachtet man nach weniger als 10 Minuten einen 0.1% Speicheranstieg, fortlaufend ...

... later ...

Ich habe jetzt nach 18 Stunden das hier. Das kann keine Monate gut gehen!

Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
(wie kann man im Forum diese auto keyword detection beim Artikel schreiben abschalten?)
 
Zuletzt bearbeitet:
Hab' nochmal nachgeschaut. Oscam speichert auch bei den EMMs nur die MD5-Hashes. Das sind Krümel und eben keine vollständigen EMMs.

Du kannst außerdem die globalen EMMs nicht eine Stunde lang auffangen und deren Aufnahme in den Cache linear fort schreiben. Die fangen an, sich wie blöde zu wiederholen. Folglich wächst der Cache nach einer Weile nur noch langsam weiter.

In einem ganzen Monat sammeln sich ca. 7500 unterschiedliche globale EMMs an. Jede landet mit ihrem 16 Byte MD5-Hash im Cache. Das macht um die 120 kByte - nach einem ganzen Monat wohlgemerkt. Das ist nicht wirklich viel und weit von deinen vermuteten 50 MB entfernt.

Dann gibt es noch einen Dreh. Globale EMMs für V14 wirft man typischerweise einfach ins Klo. Damit landen die erst gar nicht im Cache.
 
Ich habe jetzt einmal einige Tage getestet und dokumentiert.
Es geht um die EMM-Gs einer V14 mit "emmchache = 2,1,31,0" Einstellung.

Du musst dich Anmelden oder Registrieren um den Inhalt der Angebote zu sehen!
Hast du das im Source Code nachgeschaut?

Du musst dich Anmelden oder Registrieren um den Inhalt der Angebote zu sehen!
Das hatte ich auch so verstanden, aber die Aufzeichnungen der written EMM-Gs (das sind ja die die im Cache landen) zeigen dass es durchschnittlich ziemlich genau 6000 EMM-Gs sind die geschrieben werden, auch nach Tag 5. Diese Zahl nimmt auch nicht ab, was ja der Fall wäre wenn sich die EMMs wiederholen würden. Ich kann mir auch nicht vorstellen dass es jeden Tag 6000 neue (!) EMM-Gs gibt! Was läuft hier schief?

Du musst dich Anmelden oder Registrieren um den Inhalt der Angebote zu sehen!
Wieder total plausibel!

Weiterhin habe ich festgestellt, dass wenn ich den angezeigten Speicherverbrauch des "ps -p <pid> -o %mem" Befehls durch die Zahl der written EMM-Gs teile, komme ich auf etwa 1.3 KB pro EMM. Kann nicht sein ... !!!

Was läuft hier falsch?

... later ...

Ich habe soeben auf einer dm800se in einem kleineren Zeitraum gleiches Experiment gefahren. Gleiches Ergebnis. Etwa 1.1 KB pro EMM im RAM.
 
Zuletzt bearbeitet:
Nur mal ein paar Gedanken dazu.

1. Der Quelltext ist King! Da schaut man bei untypischen Fragen nach.
2. Ja, ich bin penibel. Anders bekommst du beim programmieren auf die Dauer kein Bein an Land.
3. 1,1 kB pro EMM mag kurzzeitig sein. Von Dauer wird das nicht sein. Im Zweifel: s. 1. ;)
 
1. Klar.
2. Bin ganz bei dir.
3. 1.1 KB ist der Durchschnitt. Sogar kurzzeitig würde keinen Sinn machen.

Zu 3. (unter Berücksichtigung von 2.) ... kannst du mir einmal mittels written EMMs versus Speicherbrauch deiner Hardware bestätigen, dass da pro EMM wesentlich mehr Speicher abgezweigt wird als die 16 Bytes hash. Das wäre erst einmal die einfachste Methode zu bestätigen, dass da tatsächlich etwas mehr passiert als angenommen. Dananch klemme ich mich hinter Code ...

Danke!

Man kann sich jetzt den Source Code auf die Lunge ziehen oder lange Theorien aufstellen, aber ein einfacher Test auf einer dm800se zeigt, dass ...
emmcache = <1|2>,<rewrite>,<logging>,<stb-emm>
... nach 4-5 Tagen zu Freezers führt, da der Speicher des STB einfach nur voll läuft, und die CPU pas Checken von V14 EMM-G Dupes nicht mehr bewältigen kann. Dabei spielt es auch keine Rolle mehr ob 16 Bytes Hash oder +1 KB per EMM drauf gehen.

Damit ist emmcache in Zusammenhang mit einer V14 tunlichst abzuschalten!

Klar, EMM-Gs sind für die Tonne, aber wenn man trotzdem (aus welchen Grund auch immer) EMM-Gs schreiben/loggen will, dann bitte ohne emmcache.
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben