EPG / Speicherplatzproblem

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

EPG / Speicherplatzproblem

Beitrag von seife »

Hallo.

Seit dieser Woche scheint sich irgendwas im EPG verändert zu haben, zumindest braucht der sectionsd plötzlich obszön viel Speicher.

Ich habe seit mindestens einem Jahr folgende Einstellungen:

epg_cache_time=14
epg_extendedcache_time=24
epg_max_events=5000
epg_old_events=1

damit war der sectionsd normalerweise 10-12 MB gross, nach einer Woche war evtl. mal ein Neustart von Nöten, damit das Teletext-Plugin und Aufnahmen wieder funktionierten, aber im normalen Betrieb gab es keine Probleme.

Diese Woche nun ist es so, dass ich, nach Einlesen des EPG auf ARD und ZDF schon weit über 14 MB bin, wenn ich dann noch RTL und Pro7 anzappe, dann ist der sectionsd grösser als 18 MB und die Kiste wird komplett unbedienbar. Früher oder später wird dann, wenn ich Glück habe, der sectionsd vom Kernel gekillt, ansonsten hilft dann nur noch der "Affengriff".

Mittels

epg_extendedcache_time=12

habe ich ihn jetzt etwas gezähmt, nun wird er "nur" noch 16 MB gross:

Code: Alles auswählen

/tmp $ ps u `pidof sectionsd`
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      1503  3.4 55.2  76992 16764 ?        SNsl 21:58   3:08 /bin/sectionsd -p
Allerdings würde mich doch interessieren, ob ich der einzige bin, bei dem das auftritt und ob jemand eine Idee hat, woran es liegen könnte.
Mir scheint, als ob die Langtexte nun länger sind oder sowas (z.B. die ZDF-Kanäle haben oft mehrere Bildschirmseiten voll Text), evtl. wird nun auch im Unterschichtenfernsehen ausführliches EPG gesendet, was sie früher nicht gemacht haben, aber so richtig quantifizieren kann ich das nicht.

Hat irgendjemand eine Idee, was es sein könnte?
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: EPG / Speicherplatzproblem

Beitrag von seife »

Ich antworte mir mal selbst: der sections scan / "Automatische Kanalsuche" scheint sehr viel Speicher zu belegen, speziell scheint vor dem Aufruf von updateNetwork() noch wenig belegt zu sein, danach aber sehr viel.

print_meminfo() vor updateNetwork auf ARD, mit frisch gestartetem sectionsd:

Code: Alles auswählen

01:19:25.269 total size of memory occupied by chunks handed out by malloc: 3274176
total bytes memory allocated with `sbrk' by malloc, in bytes: 3366912 (3288kB)
nach updateNetwork():

Code: Alles auswählen

01:19:54.469 total size of memory occupied by chunks handed out by malloc: 11189928
total bytes memory allocated with `sbrk' by malloc, in bytes: 11595776 (11324kB)
Das bedeutet, dass der NIT scan doppelt soviel Speicher belegt, als die eingelesenen Events :-(
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Re: EPG / Speicherplatzproblem

Beitrag von Nirvana »

Jepp, das ist so. Das ist mehr so eine Art Proof-of-Concept. Allerdings nutze ich es, weil ich als umweltbewusster Bundesbürger selbstverständlich meine Box nachts vom Strom trenne. ;-)
Man sollte überlegen, ob sich die automatische Sendersuche nicht viel, viel besser, schneller und effizienter im zapit realisieren ließe...
(aber da war sie wieder die Diskussion um die Daemons und ob sie sinnvoll sind oder der monolithische Ansatz besser ist...)
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: EPG / Speicherplatzproblem

Beitrag von seife »

a) selbstverständlich wäre das im zapit besser. Wobei - wenn zapit dann auch soviel Speicher braucht... ;-) (Ich bin inzwischen der Meinung, dass man den ganzen Murks, der evtl. Memleaks etc. hat, in einem Daemon unterbringen sollte, den man dann (evtl. automatisch per Watchdog o.Ä.) ab und zu mal neu starten kann. Nicht schön, aber pragmatisch.)

b) ok, wenn das halt so ist, dann ist es halt so ;) Allerdings wäre es interessant zu wissen, was sich diese Woche geändert hat, denn zuvor gab es nie Probleme, aber seit dieser Woche ganz massiv (nachts runterfahren bringt da gar nichts, nach 3 oder 4 verschiedenen ASTRA-Transpondern ist die Box praktisch tot mit meinen alten Einstellungen)
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Re: EPG / Speicherplatzproblem

Beitrag von Nirvana »

a) Nö, kann man ja dann "richtig" programmieren. *g*
b) Achso, ich dachte Du hättest es für den anderen Thread aktiviert. Hmm, da ich kein Astra habe, kann ich es nicht checken. Dann werden die jetzt wohl im NIT mehr (alle?) Transponder senden...(Vermutung)
-> Nach DVB wäre es nämlich richtig wenn man als ONID 0001 hat wie ARD auch alle anderen Transponder mit ONID 0001 zu übertragen...was wieder zeigt, dass die ONID nicht sauber vergeben wurden...
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: EPG / Speicherplatzproblem

Beitrag von GetAway »

Also bei mir treten keine Probleme auf. Nach einlesen der EPG-Daten
auf ARD, ZDF RTL und Pro7 belegt der sectionsd ca. 13 MB.

Allerdings haben wir hier auch eine Satellitenhausanlage bei der die
NIT-Liste 1:1 von SAT eingespeist wird. Damit kann die Kabelbox natürlich
nichts anfangen und der Speicherverbrauch bleibt so wie immer. :)
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Re: EPG / Speicherplatzproblem

Beitrag von PauleFoul »

@Seife

Hast Du mal probiert die ganzen ARD Radiokanäle über den EPG-Filter "einzusparen"?
Dann sinkt der Speicherverbrauch gewaltig...
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: EPG / Speicherplatzproblem

Beitrag von seife »

Ja, ich habe schon nur die, die in meine Favoriten-Bouquets drin sind in der epgfilter-Whitelist.
Es sind nicht die Events, die den meisten Speicher verbrauchen, es ist das updateNetwork().
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: EPG / Speicherplatzproblem

Beitrag von seife »

Eigentlich war's ganz einfach:
http://cvs.tuxbox-cvs.sourceforge.net/c ... f_format=u

;)

Edit: und es hilft. Mit 24h Langtext und 10000 Events schaffe ich es jetzt nicht mehr, den sectionsd grösser als 10MB zu bekommen. So soll es sein.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: EPG / Speicherplatzproblem

Beitrag von GetAway »

seife hat geschrieben: Edit: und es hilft. Mit 24h Langtext und 10000 Events schaffe ich es jetzt nicht mehr, den sectionsd grösser als 10MB zu bekommen. So soll es sein.
Super. Eine Frage: Mit oder ohne EPG-Filter?
Dann werde ich mal testen ob's auf ner Kabelbox auch Speicher spart.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: EPG / Speicherplatzproblem

Beitrag von seife »

Mit. Das sollte aber keinen Unterschied machen, für mich war es einfach relativ mühselig, die 10000 Events voll zu bekommen, wenn ich keinen epgfilter hätte, wäre es einfach nur schneller gegangen ;)

Für den Speicherbedarf ist jetzt hauptsächlich die Anzahl der Events verantwortlich (und die Zeit für die Langtext-Speicherung), so wie es sein soll.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: EPG / Speicherplatzproblem

Beitrag von GetAway »

So, ich habe jetzt mal 10000 Events über verschiedene Transponder gesammelt.
Es werden knapp 10MB Speicher belegt.
/var # ps u `pidof sectionsd`
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2519 0.0 32.6 69248 10072 ? S 20:00 0:03 /mnt/cf/var/bin/sectionsd -p
root 2520 0.0 32.6 69248 10072 ? S 20:00 0:00 /mnt/cf/var/bin/sectionsd -p
root 2521 0.0 32.6 69248 10072 ? S 20:00 0:00 /mnt/cf/var/bin/sectionsd -p
root 2522 2.2 32.6 69248 10072 ? S 20:00 2:13 /mnt/cf/var/bin/sectionsd -p
root 2523 0.0 32.6 69248 10072 ? S 20:00 0:00 /mnt/cf/var/bin/sectionsd -p
root 2524 0.0 32.6 69248 10072 ? S 20:00 0:00 /mnt/cf/var/bin/sectionsd -p
root 2525 0.0 32.6 69248 10072 ? S 20:00 0:00 /mnt/cf/var/bin/sectionsd -p
root 2526 0.0 32.6 69248 10072 ? S 20:00 0:03 /mnt/cf/var/bin/sectionsd -p
root 2527 0.1 32.6 69248 10072 ? S 20:00 0:06 /mnt/cf/var/bin/sectionsd -p
Das ist eine wirklich signifikante Verbesserung des sectionsd. Geilo :D
Man kann sagen pro 1000 Events werden jetzt ca. 1MB belegt.
Hours to cache: 336
Hours to cache extended text: 24
Events are old 0min after their end time
Number of cached services: 136
Number of cached nvod-services: 0
Number of cached events: 10000
Number of cached nvod-events: 0
Number of cached meta-services: 0
Total size of memory occupied by chunks
handed out by malloc: 4771572 (4659kb)
Total bytes memory allocated with `sbrk' by malloc,
in bytes: 6824940 (6664kb)
Zuletzt geändert von GetAway am Samstag 29. November 2008, 21:47, insgesamt 1-mal geändert.
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Re: EPG / Speicherplatzproblem

Beitrag von PT-1 »

Muessen wir den Riker gleich mal anhauen einen neuen SNAP zu bauen
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Re: EPG / Speicherplatzproblem

Beitrag von PT-1 »

Koennte einer von euch eventuell ein binary hochladen?
JtG-Riker
Image-Team
Beiträge: 1015
Registriert: Freitag 7. Februar 2003, 18:37

Re: EPG / Speicherplatzproblem

Beitrag von JtG-Riker »

PT-1 hat geschrieben:Koennte einer von euch eventuell ein binary hochladen?
Snap is oben aber noch nicht verlinkt nur online Update.

Gruß Riker
Striper
Erleuchteter
Erleuchteter
Beiträge: 625
Registriert: Samstag 8. September 2007, 16:17

Re: EPG / Speicherplatzproblem

Beitrag von Striper »

PT-1 hat geschrieben:Koennte einer von euch eventuell ein binary hochladen?
http://www.2shared.com/file/4371644/342 ... ionsd.html
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Re: EPG / Speicherplatzproblem

Beitrag von PauleFoul »

Das Problem ist aber nur da wenn der "Sectionsd Scan" an ist, oder??
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: EPG / Speicherplatzproblem

Beitrag von seife »

Ja, ich denke schon.

Edit: nein, so wie es aussieht wird der dmxFOO.change_cond auch bei DMX::dropCachedSectionIDs(), DMX::setPid() (nur für pptThread) und DMX::setCurrentService() (nur EIT Threads) getriggert, das heisst, dass der NIT Thread evtl. auch läuft, wenn der tägliche Housekeeping-Thread durchläuft oder wenn "sectionsdcontrol --freemem" aufgerufen wird (lustig dass ausgerechnet das das triggert ;)). Ob der dann tatsächlich dort hin läuft habe ich nicht geprüft.

Edit2: nein, es sieht so aus, als wäre alles gut, wenn auto_scanning == 0:

Code: Alles auswählen

                dprintf("dmxNIT: going to sleep...\n");

                if ((auto_scanning > 0) && (!startup)) {
                         if (messaging_nit_nid[0] != 0)
                                updateNetwork();
                        pthread_mutex_unlock( &dmxSDT.start_stop_mutex );
"sectionsd scan aus" == auto_scanning = 0
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Re: EPG / Speicherplatzproblem

Beitrag von PauleFoul »

@Seife

Danke für die Info und das Du gleich nachgeschaut hast.