Nach (Re)Start > 3 Minuten bis Bild/Ton ...

  • Nach dem Starten unseres yaVDRs dauert es öfters mehr als 3 Minuten bis Bild und Ton da sind. Bis dahin wird ein schwarzer Bildschirm mit Mauszeiger dargestellt.

    (Mittlerweile leider nur mehr) manchmal, haben wir nach knapp einer 1/2 Minute Bild und Ton.


    Ich habe mal das komplette syslog vom Reset bis Bild angehängt.


    Start/Reset: 15:26:08

    Bild/Ton: ca. ab 15:29:30


    Ich hab irgendwie epgd/epg2vdr/etc. im Verdacht, kanns aber nicht begründen.

    Kann es sein, dass der Start des VDR auf epgd & Co wartet?

    Habt ihr eine Idee bzw. könnt ihr aus dem Log herauslesen, warum Bild/Ton so lange brauchen?


    Danke schon jetzt für eure Hilfe!

    MyVDR (Hardwareliste) : yaVDR 0.6 - softhddevice-openglosd - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 17.1 - inputstream - amazon prime vod *broken*
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 3 TB HDD

  • Soweit ich das sehen kann, machen epgd und epg2vdr schon einiges, bevor dbus2vdr das erste Mal von der Mainloop aufgerufen wird und das Ready-Signal sendet (Meldung May 26 15:29:16 myVDR vdr.conf: vdr is ready). Das das Frontend-Skript attached softhddevice erst, wenn es das Signal erhalten hat.


    Wenn deine Signatur stimmt und da eine HDD zum Einsatz kommt, bremsen vermutlich die I/O Operationen, die von der MySQL-Datenbank, skindesigner und epgd/epg2vdr beim Start verursacht werden, erheblich. Eine SSD fürs System und die Datenbank sollte helfen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Danke für deine rasche und wie immer kompetente Antwort!


    Würde also im Umkehrschluss heißen: die paar mal wo es schnell geht, machen epgd und skindesigner einfach weniger?

    Kann ich das irgendwie verifizieren, dass die I/O-Operationen beim Starten am Anschlag sind?


    Kann ich das so einstellen, dass das Ready-Signal kommt, auch wenn epgd noch nicht fertig ist?

    Und welche Nachteile habe ich dadurch? Wenn das EPG erst ein paar Minuten nach dem Start stimmt/aktuell ist, wäre mir das egal.

    MyVDR (Hardwareliste) : yaVDR 0.6 - softhddevice-openglosd - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 17.1 - inputstream - amazon prime vod *broken*
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 3 TB HDD

  • Würde also im Umkehrschluss heißen: die paar mal wo es schnell geht, machen epgd und skindesigner einfach weniger?

    Da müsste man mal die Logfiles vergleichen, eigentlich sind epg2vdr und epgd recht gesprächig, was sie gerade tun - wenn epgd beim Start z.B. die EPG-Daten aus dem Netz holt und in die Datenbank schreibt, könnte das zusätzliche Festplattenzugriffe erzeugen. Ansonsten wird z.B. auch noch einmal täglich der Index für locate aktualisiert.


    Der skindesigner sollte bei gleich bleibenden Einstellungen eigentlich immer die selben Dateien beim Start laden und der VDR liest die Aufnahmen beim Start ein (je mehr man hat, desto länger dauert es).

    Kann ich das irgendwie verifizieren, dass die I/O-Operationen beim Starten am Anschlag sind?

    Mit dem Programm top würde ich auf den %wa Wert schauen, der ist ein Indikator dafür, dass die CPU auf I/O-Operationen warten muss. Ansonsten kann man auch noch mit iotop nachsehen, wie viel die Platte zu tun hat: http://bencane.com/2012/08/06/…ng-high-io-wait-in-linux/ - wobei es vermutlich nicht am absoluten Durchsatz scheitert, sondern an den Zwangspausen durch die Zugriffszeiten (die bei einer HDD so im Bereich von 10 - 15 ms liegen). Wenn viele Programme parallel an unterschiedlichen Positionen auf der Platte Daten lesen oder schreiben wollen, verliert man dadurch einfach eine Menge Zeit. Bei einer SSD liegen die Zugriffszeiten typischerweise bei unter 0,1 ms, da fällt das wesentlich weniger ins Gewicht, auch wenn man kein Spitzenmodell verbaut hat.

    Kann ich das so einstellen, dass das Ready-Signal kommt, auch wenn epgd noch nicht fertig ist?

    Das Ready-Signal wird abgesetzt, wenn der VDR die Initialisierung der Plugins abgeschlossen hat und dbus2vdr zum ersten Mal in der Mainloop aufgerufen wird. Vorher kann der VDR auch nicht auf Befehle von außen reagieren.


    Du könntest versuchen den Start von epgd (und ggf. MySQL) zu verzögern und dadurch den Start etwas zu entzerren, indem du sleep-Befehle in die Upstart-Jobs einbaust.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hmm, mysql startet sehr zäh und auch irgendwie spät. In meinem upstart-script mysql.conf steht eigentlich nur der Runlevel ab 2 als Bedingung drin.

    Ansonst hab ich auch schon eine SSD und mein SQL-Memory mit mysqltuner.pl "optimiert" soweit möglich.

    Am besten wäre es freilich, mysql auf einem eigenen Server durchlaufen zu lassen, evtl. zussammen mit epgd.

    --
    hdvdr: Intel(R) Xeon(R) CPU W3520, 12 GB Ram, Grafik nvidia GeForce GT 430, nvidia-396
    Octopus (ddbridge-6.5) mit 2xDVB-S2 und 2xDVB-C/T Tunern, TT-3200 (SAA7146) mit 1xDVB-S2 + FB,
    System btrfs, apt-btrfs-snapper,+5x1TB Raid5 XFS, yavdr0.6-frodo, Kernel 4.15.0-38-generic

    mit DD-S2+C+SAA7146-Support, epgd/tvm/tvsp, vdradmin-am, vdrmanager

  • Hmm, mysql startet sehr zäh und auch irgendwie spät. In meinem upstart-script mysql.conf steht eigentlich nur der Runlevel ab 2 als Bedingung drin.

    Runlevel 2 bedeutet laut http://upstart.ubuntu.com/cookbook/#runlevels , dass er erst starten darf, wenn das System weitgehend initialisiert wurde, die Netzwerkverbindung steht und alle Voraussetzungen für den Start der graphische Oberfläche gegeben sind.

    Die Kombination aus SysV-Init und Upstart ist generell nicht die schnellste, mit systemd kann man bei der Bootzeit einiges verbessern, wenn man eine SSD im System hat und eine statische IP vergibt, damit das nework-online.target schnell erreicht wird.


    epgd auf einen Server zu verlagern (der im Idealfall durchläuft) bringt natürlich den Vorteil, dass man sich die Zeit und den I/O für die Initialisierung der Datenbank beim Start spart.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Danke für eure Antworten!


    Ich habe mir das in den letzten Tagen genauer angeschaut und der "wa"-Wert ist beim Booten tatsächlich sehr hoch - geht rauf bis 95.

    Nach dem ich jetzt auch erst mal einige Speicherparameter für mysql optimiert habe, gehts jetzt ein bißchen schneller beim Starten - dauert aber insgesamt immer noch "zu lang" bis zum Bild (WAF!).


    Einen syslog-Vergleich zwischen "langsamen" und "schnellem" Start kann ich leider nicht machen, weil das Aufwachen aus dem Ruhezustand dzt. nicht mehr klappt.

    Werde dazu einen Thread aufmachen.


    Du könntest versuchen den Start von epgd (und ggf. MySQL) zu verzögern und dadurch den Start etwas zu entzerren, indem du sleep-Befehle in die Upstart-Jobs einbaust.

    Könntest du das bitte ein bißchen genauer ausführen?

    Das wäre nämlich viell. die Lösung, weil lieber haben wir "sofort" Bild und Ton und dafür gerne etwas später ein aktuelles EPG. Ideal wäre natürlich beides ;-)

    MyVDR (Hardwareliste) : yaVDR 0.6 - softhddevice-openglosd - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 17.1 - inputstream - amazon prime vod *broken*
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 3 TB HDD

  • Einen syslog-Vergleich zwischen "langsamen" und "schnellem" Start kann ich leider nicht machen, weil das Aufwachen aus dem Ruhezustand dzt. nicht mehr klappt.

    Vom Ruhezustand (aus dem anderen Thread vermute ich, dass du Standby meinst) war bislang keine Rede...


    Für den Standby greifen auch anderen Skripte als bei einem normalen Start. epgd und MySQL werden dabei soweit ich weiß nicht gestoppt - wie sich epgd und MySQL generell verhalten, wenn man den Rechner in den S3 schickt, habe ich noch nie ausprobiert - vermutlich fällt epgd beim Aufwachen die Zeitdifferenz zum letzten Update auf und dann stößt es sofort die Aktualisierung der Daten an. Falls du da noch ältere Logs (/var/log/syslog.*) davon hast, könnte man sich ja mal ansehen, was da passiert ist, bevor er nach dem letzten Update (bei dem sich außer bei epgd nicht geändert haben sollte) nicht mehr richtig aufwachen kann.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Da ich mir durchs Rumprobieren mit div. Parametern jetzt kurzfristig mysql zerschossen hatte (startete nicht mehr), konnte ich feststellen bzw. mitstoppen,

    dass ein Start ohne mysql (somit laufen epg & co ins Leere) nach ca. 1 Minute Bild und Ton bringt. Mit epgd&co dauerts hingegen > 4 Minuten!


    Im syslog sehe ich, dass epgd bzw. epg2vdr (bzw. scraper2vdr) sehr oft nach dem Einschalten "glauben", alle Aufnahmen seien neu und müssen neu gescraped werden und das dauert natürlich und führt zu der sehr langen Verzögerung.


    1) Warum werden (ur)alte Aufnahmen immer wieder als neu erkannt und lösen Scraperei im großen Stil aus?

    2) Ist epgd & co darauf ausgelegt, auf einem 24/7 Server zu laufen?`Wenn ja: wie kann man ihnen das abgewöhnen?

    2) Wie kann ich erreichen, dass epg&co erst Loslaufen, wenn der VDR schon läuft?

    MyVDR (Hardwareliste) : yaVDR 0.6 - softhddevice-openglosd - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 17.1 - inputstream - amazon prime vod *broken*
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 3 TB HDD

  • 2) Ist epgd & co darauf ausgelegt, auf einem 24/7 Server zu laufen?`Wenn ja: wie kann man ihnen das abgewöhnen?

    Ja, ist es. Entweder damit zurecht kommen oder einen 24/7 Server einsetzen. Manches ist so wie es ist ;)

    Gruß utiltiy



    VDR Projekte EPGD EPG2VDR

  • Hmmmm .... ich könnte mir also zB auf einem alten Notebook (vorhanden!) mysql und epgd installieren, die jetzige channelmap.conf raufkopieren und das Teil einfach 24/7 durchlaufen lassen. Auf dem yaVDR könnte ich dann epgd und mysql deinstallieren und müsste nur mehr scraper2vdr und epg2vdr auf dem yaVDR laufen lassen.


    Stimmt das so? (Mal abgesehen davon, dass Notebooks wohl eher nicht für 24/7 geeignet sind)

    MyVDR (Hardwareliste) : yaVDR 0.6 - softhddevice-openglosd - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 17.1 - inputstream - amazon prime vod *broken*
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 3 TB HDD

  • 1) Warum werden (ur)alte Aufnahmen immer wieder als neu erkannt und lösen Scraperei im großen Stil aus?

    Woran meinst du das im Log zu sehen? epg2vdr (und scraper2vdr) schauen beim Start, was für Aufnahmen existieren (prinzipiell kann sich das ja geändet haben während der VDR nicht lief, z.B. wenn Aufnahmen auf Netzwerkfreigaben eingebunden wurden), damit epghttpd diese anzeigen kann und EPG-Bilder und im Fall von scraper2vdr zusätzliche Bildchen von TVDB oder The MovieDB geladen werden können, falls das noch nicht passiert ist.


    Man sollte da beim Starten so eine Zeile im Log bekommen, die einem auflistet, was epg2vdr gefunden hat - in dem Fall hat sich z.B. seit dem letzten Start nichts an den Aufnahmen geändert:

    Code
    1. May 29 15:21:55 VDR vdr: epg2vdr: Info: Found 316 recordings; 0 inserted; 0 updated and 23 directories


    2) Wie kann ich erreichen, dass epg&co erst Loslaufen, wenn der VDR schon läuft?

    Für den regulären Startvorgang brauchen die Upstart-Dateien für die Dienste die zusätzliche Start-Bedingung on started vdr

    (vgl. http://upstart.ubuntu.com/cook…epends-on-another-service) - das musst du mit den anderen Startbedingungen kombinieren, also z.B. start on (runlevel[2345] and started vdr) wenn der Dienst starten soll, wenn ein Runlevel zwischne 2 und 5 erreicht wurde und der VDR schon gestartet sein soll.

    Da ich mir durchs Rumprobieren mit div. Parametern jetzt kurzfristig mysql zerschossen hatte (startete nicht mehr), konnte ich feststellen bzw. mitstoppen,

    dass ein Start ohne mysql (somit laufen epg & co ins Leere) nach ca. 1 Minute Bild und Ton bringt.

    Mit einer HDD wirst du unter Nutzung der aktuell genutzten Plugins kaum weniger schaffen. Mit SSD dürfte sich der Wert spürbar reduzieren lassen.


    Nur mal als Ausblick: mit yavdr-ansible für Ubuntu 18.04 startet auf meinem Testsystem mit einem Celeron G540, SSD, statischer IPv4-Addresse (und deaktiviertem DHCP für IPv6) liegen zwischen dem Drücken des Start-Buttons bis zum sichtbaren Bild unter 25 Sekunden. Mit eingeschalteten Boot-Optimierungen im UEFI könnte man das noch etwas drücken (aktuell braucht er ca. 7 Sekunden, bevor er Linux bootet).

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hmmmm .... ich könnte mir also zB auf einem alten Notebook (vorhanden!) mysql und epgd installieren, die jetzige channelmap.conf raufkopieren und das Teil einfach 24/7 durchlaufen lassen. Auf dem yaVDR könnte ich dann epgd und mysql deinstallieren und müsste nur mehr scraper2vdr und epg2vdr auf dem yaVDR laufen lassen.


    Stimmt das so?


    Das stimmt so, dafür ist es eigentlich gedacht :thumbup:

    Gruß utiltiy



    VDR Projekte EPGD EPG2VDR

  • Woran meinst du das im Log zu sehen?

    U.a. an derartigen syslog-Einträgen; und das obwohl die Aufnahmen teilweise mehr als 2 Jahre alt sind.


    zu 2) D.h. um epgd erst zu starten, wenn der VDR schon (mit Bild und Ton?) läuft, muss ich in der Datei /etc/init/epgd.conf die folgende Zeile ersetzen:

    start on (started mysql and local-filesystems and net-device-up IFACE!=lo) durch diese

    start on (started mysql and started vdr and local-filesystems and net-device-up IFACE!=lo)

    Ist das soweit richtig? Oder Blödsinn, weil epgd (als Plugin) ohnehin vom VDR geladen wird?



    Wenn der "Ruhezustand" wieder richtig funktioniert, ist es uns egal, wenn wir dann ab und zu mal (nach Reboot) 3-4 Minuten aufs Bild warten müssen.
    Langfristig ist eine SSD natürlich eine gute Option. :tup

    Kurzfristig ist das "24/7-mysql-Notebook" Blödsinn; immerhin waren die Aufwachzeiten bis vor kurzem voll ok.

    MyVDR (Hardwareliste) : yaVDR 0.6 - softhddevice-openglosd - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 17.1 - inputstream - amazon prime vod *broken*
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 3 TB HDD

  • Kurzfristig ist das "24/7-mysql-Notebook" Blödsinn; immerhin waren die Aufwachzeiten bis vor kurzem voll ok.

    Deine Entscheidung 8)

    Gruß utiltiy



    VDR Projekte EPGD EPG2VDR

  • Ich habe mal ausprobiert, epgd später zu starten und habe in der Datei /etc/init/epgd.conf jetzt diese Zeile start on (started vdr and started mysql and local-filesystems and net-device-up IFACE!=lo)

    Das ändert aber leider an den ca. 3 Minuten bis zum Bild gar nichts.


    Da ich auch nicht herauskriege, warum suspend-to-ram nicht mehr funktioniert, werde ich mich wohl doch mit der epgd-Standalone-Lösung auseinandersetzen müssen ...



    Update:

    Ich habe jetzt noch mysql.conf so geändert, dass es erst startet, wenn vdr läuft. Das bringt zwar ein paar Fehlermeldungen von epg2vdr, drückt die Zeit bis zum Bild aber auf unter 2 Minuten.

    Wie kann ich jetzt noch den Start von epg2vdr verzögern - finde da keine conf dazu???

    MyVDR (Hardwareliste) : yaVDR 0.6 - softhddevice-openglosd - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 17.1 - inputstream - amazon prime vod *broken*
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 3 TB HDD

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von davie2000 ()

  • Epg2vdr ist ein Plugin des vdr und startet mit diesem. Läuft mysql zu dem Zeitpunkt nicht, beschwert es sich im syslog und versucht es nach kurzer Zeit wieder, das sollte aber nichts verzögern, solang nicht die OSD-Menüs auch auf "ersetzen" gestellt sind.

    Noch eine Frage: ist in der /etc/epgd/epgd.conf vielleicht "CheckInitial = 1" gesetzt?

    Würde dies auf "0" ändern.

    --
    hdvdr: Intel(R) Xeon(R) CPU W3520, 12 GB Ram, Grafik nvidia GeForce GT 430, nvidia-396
    Octopus (ddbridge-6.5) mit 2xDVB-S2 und 2xDVB-C/T Tunern, TT-3200 (SAA7146) mit 1xDVB-S2 + FB,
    System btrfs, apt-btrfs-snapper,+5x1TB Raid5 XFS, yavdr0.6-frodo, Kernel 4.15.0-38-generic

    mit DD-S2+C+SAA7146-Support, epgd/tvm/tvsp, vdradmin-am, vdrmanager

  • Danke für deine Antwort!

    solang nicht die OSD-Menüs auch auf "ersetzen" gestellt sind.

    Da mir schon vorkommt, dass epg2vdr den Start verzögert (weil es nicht zu mySQL connecten kann), würde ich gerne wissen, was du damit genau meinst?


    Würde dies auf "0" ändern.

    CheckInitial war tatsächlich auf 1 gesetzt - hab ich jetzt auf 0 geändert.

    Dadurch müsste beim Neustart wegfallen, dass alle Aufnahmen als neu erkannt und frisch gescraped werden, oder?

    MyVDR (Hardwareliste) : yaVDR 0.6 - softhddevice-openglosd - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 17.1 - inputstream - amazon prime vod *broken*
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 3 TB HDD

  • Danke für deine Antwort!

    Da mir schon vorkommt, dass epg2vdr den Start verzögert (weil es nicht zu mySQL connecten kann), würde ich gerne wissen, was du damit genau meinst?


    CheckInitial war tatsächlich auf 1 gesetzt - hab ich jetzt auf 0 geändert.

    Dadurch müsste beim Neustart wegfallen, dass alle Aufnahmen als neu erkannt und frisch gescraped werden, oder?

    Naja, ich meine die einstellung "0" für "checkinitial" verhindert eher, daß gleich beim Start die epg-DB ("epg-data-writer") die epg.data aktualisiert, u.U. dann unnötigerweise mit unvollständigen (weil epgd noch nicht wirklich neue Daten geholt hat) Daten.


    Die Parameter

    epg2vdr.ReplaceScheduleMenu = 0

    epg2vdr.ReplaceTimerMenu = 0


    in der /var/lib/vdr/setup.conf bestimmen, ob das Original-"Schedule" und "timers"-Menü im OSD ersetzt werden soll.

    Mache ich nicht, da mir die unter Nopacity verfügbare Anzeige mit Zeitbalken etc. besser gefällt. Wenn "Ersetzen" aktiv

    ist und nicht das "Aktualisieren bei Start", könnte da evtl. ein aktuell erstellter Timer nicht drinstehen etc.


    Es ist aber ziemlich schwer, eine genaue für Laien verständliche Parameterbeschreibung zu finden ("use the source, Luke") ;-)

    --
    hdvdr: Intel(R) Xeon(R) CPU W3520, 12 GB Ram, Grafik nvidia GeForce GT 430, nvidia-396
    Octopus (ddbridge-6.5) mit 2xDVB-S2 und 2xDVB-C/T Tunern, TT-3200 (SAA7146) mit 1xDVB-S2 + FB,
    System btrfs, apt-btrfs-snapper,+5x1TB Raid5 XFS, yavdr0.6-frodo, Kernel 4.15.0-38-generic

    mit DD-S2+C+SAA7146-Support, epgd/tvm/tvsp, vdradmin-am, vdrmanager

  • epg2vdr.ReplaceTimerMenu ist bei mir tatsächlich auf 1 gesetzt.

    Muss mal ausprobieren, wie sich das auswirkt, wenn ich es auf 0 setze.

    Danke für die Erklärung!

    MyVDR (Hardwareliste) : yaVDR 0.6 - softhddevice-openglosd - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 17.1 - inputstream - amazon prime vod *broken*
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 3 TB HDD