[mythtv-users] Mythfilldatabase during recording screws up recordings.

Douglas Peale Douglas_Peale at comcast.net
Tue Apr 5 02:47:03 UTC 2011


On 04/04/2011 03:01 PM, Alex Butcher wrote:
> On Mon, 4 Apr 2011, Douglas Peale wrote:
>
>> On 04/04/2011 01:48 PM, Alex Butcher wrote:
>>> On Sun, 3 Apr 2011, Douglas Peale wrote:
>>>
>>>> Is there any way to prevent mythfilldatabase from running simultaneous to a recording? Can something be done in the scheduler to
>>>> keep them separate?
>>> Why not use ionice? I run mysqld, mythfrontend and mythbackend with 'ionice
>>> -c 2' and run all the IO-heavy tasks run by MythArchive and my commflagging
>>> wrapper script with 'ionice -c 3' so that they don't disrupt recordings or
>>> playback.  mythfilldatabase is probably another candidate for the same
>>> treatment, so I've just enabled that on my system.
> [...]
>
>> Care to elaborate on how you implement this?
> --- /etc/rc.d/init.d/mythbackend.fedora	2011-01-20 23:08:09.650056748 +0000
> +++ /etc/rc.d/init.d/mythbackend	2011-02-12 20:09:09.233178903 +0000
> @@ -36,7 +36,8 @@
>     fi
>     export MYTHCONFDIR="$MYTHTV_HOME"
>     export HOME="$MYTHTV_HOME"
> -  daemon $binary $OPTIONS
> +  # add ionice -c 2 -n 0 AJB20110120
> +  daemon ionice -c 2 -n 0 $binary $OPTIONS
>     RETVAL=$?
>     echo
>     [ $RETVAL = 0 ] && touch /var/lock/subsys/$prog
>
>
> --- /etc/rc.d/init.d/mysqld.fedora	2011-01-20 23:08:24.259515784 +0000
> +++ /etc/rc.d/init.d/mysqld	2011-01-20 23:11:11.200950806 +0000
> @@ -96,7 +96,8 @@
>   	# and some users might prefer to configure logging to syslog.)
>   	# Note: set --basedir to prevent probes that might trigger SELinux
>   	# alarms, per bug #547485
> -	$exec   --datadir="$datadir" --socket="$socketfile" \
> +	# add ionice -c 2 -n 1 AJB20110120
> +	ionice -c 2 -n 1 $exec   --datadir="$datadir" --socket="$socketfile"
> \
>   		--pid-file="$mypidfile" \
>   		--basedir=/usr --user=mysql >/dev/null 2>&1 &
>   	safe_pid=$!
>
> For mythfrontend, it'll depend on how you start and restart it, but
> essentially you want to prefix it with "ionice -c 2 -n 0" like mythbackend.
>
>> In myth backend setup, under "General" on the Mythfilldatabase page there is a line for "mythfilldatabase program:" and a line
>> for "mythfilldatabase arguments:", so there is no place I can alter the command line to include ionice.
>>
>> I suppose I could replace the mythfilldatabase.sh script with my own that calls mythfilldatabase.sh, but then I would have to
>> figure out how to make sure my script passes the proper options to the mythfilldatabase.sh script. Risky for one with minimal
>> script writing experience.
> Exactly. I use this:
>
> #!/bin/sh
> echo "mythfilldatabase started `date`"
>>> /var/lib/mythtv/mythfilldatabase.log
> echo "Parameters:" >>/var/lib/mythtv/mythfilldatabase.log
> for i in $*
> do
>  	/bin/echo -n "<$i> " >>/var/lib/mythtv/mythfilldatabase.log
> done
> echo "User: `whoami`" >>/var/lib/mythtv/mythfilldatabase.log
> echo "Groups: `groups`" >>/var/lib/mythtv/mythfilldatabase.log
> echo "PWD: `pwd`" >>/var/lib/mythtv/mythfilldatabase.log
> echo "Environment: " >>/var/lib/mythtv/mythfilldatabase.log
> export >>/var/lib/mythtv/mythfilldatabase.log
>
> su -c "ionice -c 3 nice /usr/bin/mythfilldatabase $*" mythtv
>
> HTH,
> Alex
> _______________________________________________
Thanks. I'm using Ubuntu though so I will have to do some improvising. It is unlikely I'll be able to use your changes directly.
I think the most important is to get mysql running at idle IO class. As far as I can tell, -c 2 -n 0 is the default for processes.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 262 bytes
Desc: OpenPGP digital signature
Url : http://www.mythtv.org/pipermail/mythtv-users/attachments/20110404/4eb6c727/attachment-0001.bin 


More information about the mythtv-users mailing list