[mythtv-users] mythtv + nfs = bad?

Torbjörn Jansson torbjorn.jansson at gmail.com
Mon May 4 17:59:17 UTC 2009


Hello.

first a short question, is there a way to force a frontend to always
play recordings from the backen even if the recording is available
locally via for example nfs?

i've recently upgraded to fedora 10 and after solving the normal pulse
audio in combination with alsa problems (hint: "yum erase
alsa-plugins-pulseaudio") i still have some odd playback issues.
the recording plays nice for a few seconds, then ends up freezing
playing for a few moments, then freezing again and so on.
i manage to trace this to nfs behaving odd.

first a little about my setup
one server running the backen with lots of disk and cpu power (dualcore amd64)
one frontend, via epia-m with recordings mounted over nfs.

when i tried to watch a recording the frontend complained and logged
stuff like this:

NVP: prebuffering pause
RingBuf(/mnt/store/20524_20090504125500.mpg): Waited 1.0 seconds for
data to become available...
RingBuf(/mnt/store/20524_20090504125500.mpg): Waited 2.0 seconds for
data to become available...
NVP: Prebuffer wait timed out 10 times.
NVP: Prebuffer wait timed out 10 times.
RingBuf(/mnt/store/20524_20090504125500.mpg): Waited 4.0 seconds for
data to become available...
NVP: Prebuffer wait timed out 10 times.
NVP: Prebuffer wait timed out 10 times.
RingBuf(/mnt/store/20524_20090504125500.mpg): Waited 8.0 seconds for
data to become available...
NVP: Prebuffer wait timed out 10 times.
NVP: Prebuffer wait timed out 10 times.
NVP: Prebuffer wait timed out 10 times.
NVP: Prebuffer wait timed out 10 times.
RingBuf(/mnt/store/20524_20090504125500.mpg) Error: Waited 16 seconds
for data, aborting.
Marking recording as unwatched
TV: Attempting to change from WatchingPreRecorded to None
RingBuf(/mnt/store/20524_20090504125500.mpg): Waited too long for
ringbuffer pause..
RingBuf(/mnt/store/20524_20090504125500.mpg): Waited too long for
ringbuffer pause..
RingBuf(/mnt/store/20524_20090504125500.mpg): Waited too long for
ringbuffer pause..
RingBuf(/mnt/store/20524_20090504125500.mpg): Waited too long for
ringbuffer pause..
RingBuf(/mnt/store/20524_20090504125500.mpg): Waited too long for
ringbuffer pause..
TV: Changing from WatchingPreRecorded to None

and then eventualy exiting back to the main menu.
after some testing i found that copying files over nfs, like a
recording to /dev/null made the whole computer freese until the file
was completely transferred.
something like this: "time dd if=/mnt/store/20524_20090504125500.mpg
of=/dev/null bs=16k"

this in itself is a little odd and maybe we have some nfs experts that
can enlighten me on why that happend.
i believe the frontend have similar issues when trying to play a file,
i'm guessing it have some kind of read ahead and when reading the rest
of the frontend, like playback gets frozen and then once the read
ahead have finished its job the playback realizes its too far behind
and then triggers another read ahead and so on.

to test my theory i just unmounted the nfs share from my frontend and
after that the playback was very smooth, this should force the
frontend to stream from backend since it can't read the files localy.
actually playback feels allot better without the nfs now than it ever
have, jumping forward/backward is lightning fast.

this raises a few questions.
* do nfs need some tweaking to work well with mythtv?
* why can't i copy a large file without everything locking up?
* is it normal for mythtv to be slower over nfs than streaming from
backend? advantage/disadvantage with one over the other?
* is it just me or have others experienced problems with nfs in
combination with mythtv? (probably hard to know)
* can the frontend be told to always stream from backend?
* will running a backend on my via epia box next to the tv help? (no
tv cards will be used)


More information about the mythtv-users mailing list