NFS-Ruckeln beim Spulen

  • Hi,


    so langsam dreh ich durch. Mein "neuer" Server ist per Gbit an einen Gbit Switch angeschlossen. Habe für die VDR-Clients Verzeichnisse per nfs exportiert. So gesehen erstmal alles o.k und normal. Nur ist es so, dass beim Spulen der Client manchmal einfach stockt und z.T. dann der Watchdog den VDR neu startet. Dabei ist es egal, ob der Client auch über 1Gbit angeschlossen ist, oder nur per 100Mbit. Vorspulen geht meist besser, als zurückspulen und dann meist auch nur, wenn ich die erste bis zweite Skipstufe verwende.


    Ein anderes Phänomen ist, dass der VDr auch sehr häufig stockt, wenn der Sprung vom 001.vdr zu 002.vdr stattfindet. Habe jetzt die MaxFileSize auf 200MB bei den Aufnahmen reduziert, um bei der nächsten Aufnahme mal zu sehen, ob dieses Stücke von 2GB über nfs das problem sein könnten.


    Diese Problem treten rein beim Abspielen von per nfs gemounteten Aufnehmen auf. Das Abspieln von avis über nfs per mplayer verursacht diese Probleme nicht.



    Ich vermute. dass mein Netz mit der Bitrate überfordert ist, obwohl theoretisch genügend Bandbreite da ist. Ein per scp kopiertes File vom Server auf den 100Mbit Client bringt im Schnitt ca. 6,9mb/s.


    Ich habe schon mit allen erdenklichen Optionen gespielt (sync,async,hard,intr,rsize,wsize,tcp,lock). Es brachte nix. In den logs ist dazu absolut nichts zu finden. Weniger wäre ein schwarzes Loch. Wüsste aber auch nicht, wie man den nfs-Debug hochschraubt.


    Testweise habe ich mal per smbfs freigegeben und am Client gemountet. Das Ergebnis war noch schlechter. Den Switch habe ich ebenfalls ausgetauscht gegen einen 100Mbit. Keine Verbesserung aber auch keine Verschlechterung.


    So, und jetzt seit ihr dran :lol2


    Gruß, Herinzelrumpel

  • Folgendes zur besseren Fehlersuche benoetigt:
    Auf dem Server WAEHREND des Spulens:

    Code
    top
    ps axf
    cat/etc/exports
    mount
    cat /proc/interrupts
    cat /proc/cpuinfo
    ifconfig
    tail -n 20 /varlog/messages
    hdparm

    Und fast das gleiche auf dem Client:

    Code
    top
    pas qxf
    cat/etc/fstab
    mount
    cat /proc/interrupts
    cat /proc/cpuinfo
    tail -n 20 /varlog/messages
    ifconfig
    ping -f -c 1000 <IP vom SEREVR>
    find <VIDEODIR> -type l

    Und wenn keine Zugriffe auf das NFS Dir passieren, das folgende

    Code
    dd if=<VIDEODIR/EINEDATEI001.vdr> of=/dev/null


    Da wird sich schon was finden lassen :)

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

  • Hi,


    Wozu braucht man die /proc/interrupts, die /etc/fstab und ifconfig während des Spulens? Und was genau soll ich mit hdparm machen? Top und cpuinfo leuchten mir ja noch ein. Und, wie gesagt, /var/log/syslog liefert wirklich gar nichts.


    Bei nächster Gelegenheit teste ich mal. Ich versuche mal deine Zuversicht zu teilen (;-)


    Gruß, Heinzelrumpel

  • Zitat

    Original von heinzelrumpel
    Wozu braucht man die /proc/interrupts, die /etc/fstab und ifconfig während des Spulens?


    Genau genommen waere es gut, sie ueberhaupt zu sehen. Ob das waehrend des Spulen ist oder nicht, spielt keine Rolle- ich war nur zu faul, das getrennt aufzuschreiben (und habe hiermit jetzt mehr Arbeit ;))


    Zitat

    Und was genau soll ich mit hdparm machen?

    Die Ausgabe bzgl. DMA.

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

    Einmal editiert, zuletzt von knebb ()

  • Hi,


    Frequenz der CPU wird durch cpupowerd geregelt. Liegt zwischen 1GHz und 2,4 GHz. Habe gerade mal einen Test gemacht mit kopieren per dd von der nfs-Freigabe auf die lokale Platte



    Code
    tower:~# dd if=/var/lib/video.00/server/Filme/test.img of=/root/test.img
    4096252+1 Datensätze ein
    4096252+1 Datensätze aus
    2097281162 Bytes (2,1 GB) kopiert, 89,125 s, 23,5 MB/s


    Sieht ganz gut aus.


    Den rest liefere ich nach.
    [edit]



    Unterstützen S-ATA Platten DMA? Schnell genug jedenfalls sind sie., das habe ich getestet schreiben von und auf sdb/sda ~ 50MB/s


    Hier der syslog vom Client


    Code
    Jul 30 19:01:22 tower vdr: [2125] replay /var/lib/video.00/server/Filme/10.000_BC/2008-07-13.03.28.50.99.rec
    Jul 30 19:01:22 tower vdr: [2125] playing '/var/lib/video.00/server/Filme/10.000_BC/2008-07-13.03.28.50.99.rec/001.vdr'
    Jul 30 19:01:22 tower vdr: [2313] dvbplayer thread started (pid=2125, tid=2313)
    Jul 30 19:01:22 tower vdr: [2313] resuming replay at index 18318 (0:12:12.19)
    Jul 30 19:01:22 tower vdr: [2314] non blocking file reader thread started (pid=2125, tid=2314)
    Jul 30 19:01:23 tower vdr: [2313] SetBrokenLink: no GOP header found in video packet
    Jul 30 19:01:25 tower vdr: [2313] setting audio track to 33 (0)
    Jul 30 19:04:00 tower vdr: [2204] EPGSearch: timer conflict check started
    Jul 30 19:04:00 tower vdr: [2204] EPGSearch: timer conflict check finished


    Irgendwo dadrin stockte die Wiedergabe.


    Hier noch ein paar Infos zum Client



    Und das gleich vom Server


  • Yohoo!


    top, mount, ping und find fehlt noch.:)
    Was sagt ifconfig auf beiden Kisten?


    Naja, sieht soweit doch ganz gut aus. 23MB/s Datentransfer ist schon ok, wenn auch nicht das schnellste. Du nutzt GBit Netzwerk, richtig?

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

  • Hi,
    also bei mir laeufts mit langsamerer HW und 100MBit ueber NFS ohne Probleme. Was haste denn in der /etc/exports?
    Bei mir steht da (auf dem Server):

    Code
    /video *(ro,root_squash,sync)


    (also nur lesend!)


    Gruss,
    - berndl


    PS: Gibt auch noch die Moeglichkeit, die Blocksize zu erhoehen (hier suchen). Brauch' ich aber definitiv nicht.

  • Ich habe schon alles in der /etc/exports/ausprobiert.


    z.B.


    /var/lib/video.00 192.168.0.220(rw,all_squash,anongid=xx,anonuid=xxx)


    dazu z.Zt. noch sync, auch async. War alles absolut belanglos für Mein 1Gbit NETZWERK.


    knebb


    ifconfig zeige ich dir nicht nicht :lol2 Beide mashinen habe statische Ips


    hier vom Server



    Und einmal vom Client



    Übertragungsfehler dürften nicht die Ursache sein.


    Und ping ist auch gut.


    Code
    tower:~# ping -f -c 1000 192.168.0.2
    PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.
    
    
    --- 192.168.0.2 ping statistics ---
    1000 packets transmitted, 1000 received, 0% packet loss, time 117ms
    rtt min/avg/max/mdev = 0.036/0.043/0.088/0.010 ms, ipg/ewma 0.117/0.044 ms
    tower:~#


    Mount zeigt auf dem client



    Und auf dem server



    Top liefert mir ca. 0-3% Auslastung.


    darfs ansonsten noch etwas mehr sein :schiel

  • Das wollt eich eben noch nachschieben


    Code
    tower:/var/lib/video.00/server/Filme# find /var/lib/video.00/ -type l | tee find.txt
    tower:/var/lib/video.00/server/Filme# cat find.txt
    tower:/var/lib/video.00/server/Filme#


    Findet wohl nichts, zumindest keine symbolischen Links



    Code
    tower:/var/lib# ls -al video.00/
    insgesamt 32
    drwxr-xr-x   4 vdr  vdr  4096 30. Jul 18:37 .
    drwxr-xr-x  26 root root 4096 15. Jul 19:35 ..
    drwxrwxr-x   2 vdr  vdr  4096 19. Jul 22:41 2008-07-19.21.43.50.99.rec
    -rw-r--r--   1 vdr  vdr  8844 25. Jul 18:57 id3info.cache
    drwxrwxr-x+  6 1002 root 4096 15. Jul 17:13 server
    -rw-r--r--   1 vdr  vdr     0 30. Jul 18:28 .update


    Habe festgestellt, dass wenn der VDR beim zurückspulen einfriert, bzw. das Bild einfriert, ich durch drücken der Stop-Taste wieder in den TV-Betrieb wechseln kann.

  • Yohoo!


    Ich wieder- habe auch nicht immer Zeit ;)


    du hast sicher schon mal probiert, einen Film auf die lokale Platte zu kopieren und von dort abzupielen/ zu spulen? Gleiches Verhalten?

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

  • Schön, dass du wieder da bist :unsch


    Ja, das habe ich probiert, auf beiden Clients. Alles wunderbar. Liegt nur an dem NFS-Verzeichnis. Werde daraus nicht schlau. Kann es sein, dass es konflikte gibt, da ja das Verzeichnis serverseitig das Video-Verzeichnis ist?


    Also /var/lib/video.00 auf dem Server wird auf den Clients auf /var/lib/video.00/server gemountet. An und für sich sollte das doch nicht das Problem sein.


    Gruß, Heinzelrumpel

  • Laeuft auf beiden Clients der "portmap"?
    Laueft auf dem Server der "lockd"?


    Deswegen ja die (schon laengst angeforderten ;)) Auszuege aus ps axfu.


    Was mich etwas stutzig macht, ist Deine /etc/exports mit "all_squash" und die Berechtigungen. Das all_squash ist normalerweise nur bedingt zu empfehlen.


    Als welcher User laufen die VDR-Prozesse bei Dir? vdr? root?

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P


  • Die Infos (ps und lockd, portmap)kann ich erst heute Abend nachliefern. Was spricht gegen all_squash? Ich will in Kombination mit anongid und anonuid halt nur, dass von extern mit diesen Rechten auf den Server zugegriffen wird. Im Grunde ist doch auch no_root_squash Standard bei Debian und all_squash erweitert dieses Sicherheitsfeature.

  • Zitat

    Original von heinzelrumpel
    Was spricht gegen all_squash?


    Verwirrung. :)
    Wenn der VDR seine Dateien speichert, schreibt er mit seiner User-ID. Ist nun "all_squash" angeschaltet, wird dieser User auf "nfsnobody" (oder so) "umgebogen". D.h. die gerade als "vdr" geschriebene Datei gehoert "nfsnobody"- je nach umask hat der VDR da evtl. keinen Zugriff mehr drauf.


    Zitat

    Im Grunde ist doch auch no_root_squash Standard bei Debian und all_squash erweitert dieses Sicherheitsfeature.


    Ist kein Sicherheitsfeature. Zumindest nicht "all_squash". :)
    Und root_squash ist Standard- das definitiv aus Sicherheitsgruenden. Wenn Dein VDR aber nicht als root laeuft, interessiert ihn "root_squash" garnicht. Deshalb die Fragen nach der UserID.

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P



  • Der Client schreibt ja keine Dateien auf den Server. Er hat nur rw, damit er die gesehen Aufnahmen löschen kann. Es sind auf dem Server alle Aufnahmen mit der UID des VDR. Das dürfte der user VDR selbst sein. Auf einem Client hatte ich testweise den VDR als Root laufen.


    An den Zugriffsrechten liegt es aber definitiv nicht, denn Abspielen kann der Client ja, daher denke ich, dassman an dieser Stelle auch nicht weiterforschen braucht, oder?

  • Zitat

    Original von heinzelrumpel
    Es sind auf dem Server alle Aufnahmen mit der UID des VDR. Das dürfte der user VDR selbst sein.


    Wie jetzt? :evil: Verstehe ich jetzt nicht. Ich will nur sichergehen, dass die Rechte alle stimmen. Vielleicht ist es ein Holzweg, vielleicht aber auch nicht!
    ls -l /video sowohl auf dem Client als auch dem Server. Und das fehlende ps axfu dazu, bitte ;D


    Zitat

    Auf einem Client hatte ich testweise den VDR als Root laufen.


    Das macht keinen Unterschied, da ja auch root auf die "nfsnobody" gemappt wird.


    Zitat


    An den Zugriffsrechten liegt es aber definitiv nicht, denn Abspielen kann der Client ja, daher denke ich, dassman an dieser Stelle auch nicht weiterforschen braucht, oder?


    Man weiss es nicht, man weiss es nicht. Der VDR schreibt ja auch seine aktuelle Abspielposition gerne in das Videoverzeichnis. Wenn das jetzt wg. Berechtigungen nicht klappt....?

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

  • Ich kann vom Client aus löschen, das sollte doch für genügend Rechte sprechen. Aber ich will gerne heute Abend etwas anderes ausprobieren.


    Werde meine /etc/exports dann so gestalten


    Code
    /var/lib/video.00  192.168.0.220(rw,sync,no_subtree_check)


    Wie gehe ich nun sicher, dass der Client auch alle Rechte am Server hat?


    Glaube aber wirklich nicht, dass es an den Rechten liegt. Viele exportieren doch auch nur ro. Das dürfte dann ja auch nicht funktionieren.


    [edit]


    Code
    Jul 30 19:01:22 tower vdr: [2125] replay /var/lib/video.00/server/Filme/10.000_BC/2008-07-13.03.28.50.99.rec
    Jul 30 19:01:22 tower vdr: [2125] playing '/var/lib/video.00/server/Filme/10.000_BC/2008-07-13.03.28.50.99.rec/001.vdr'
    Jul 30 19:01:22 tower vdr: [2313] dvbplayer thread started (pid=2125, tid=2313)
    Jul 30 19:01:22 tower vdr: [2313] resuming replay at index 18318 (0:12:12.19)
    Jul 30 19:01:22 tower vdr: [2314] non blocking file reader thread started (pid=2125, tid=2314)
    Jul 30 19:01:23 tower vdr: [2313] SetBrokenLink: no GOP header found in video packet
    Jul 30 19:01:25 tower vdr: [2313] setting audio track to 33 (0)
    Jul 30 19:04:00 tower vdr: [2204] EPGSearch: timer conflict check started
    Jul 30 19:04:00 tower vdr: [2204] EPGSearch: timer conflict check finished


    Hier spielt der Client ab einer vom ihm vorher geschrieben Abspielposition.

  • (Eure Diskussion wird auch von anderen verfolgt!) :D


    Ich denke auch nicht, dass es an fehlenden Rechten liegt, denn diese Position wird wohl erst geschrieben, wenn man den Film verläßt.
    Und bei fehlenden Rechten geht ja irgendwas gar nicht, wenns ruckelt, dann tuts ja, nur halt nicht richtig.


    Ich fände die top Ausgabe schon noch ganz interessant. Da gibts ja mehr zu sehen, als die Auslastung. Ich denk da in erster Linie grad an den Load und die Waits.


    Faudeer

    Synchronisieren und Backup auch unter Linux! 250MB extra für euch und mich bei Dropbox-Anmeldung (zu den kostenlosen 2GB), wenn ihr meinen Referral nutzt.

  • Zitat

    Original von Faudeer
    Ich denke auch nicht, dass es an fehlenden Rechten liegt,


    Das denke ich ja auch nicht- aber warum mit etwas rumaergern, wenn man es sicher ausschliessen kann?


    Zitat

    Ich fände die top Ausgabe schon noch ganz interessant. Da gibts ja mehr zu sehen, als die Auslastung. Ich denk da in erster Linie grad an den Load und die Waits.


    Meine Worte, meine Worte....

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!