Rich Freeman on 9 May 2014 04:07:48 -0700 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: [PLUG] fcheck not nice/ionice? |
On Fri, May 9, 2014 at 12:25 AM, JP Vossen <jp@jpsdomain.org> wrote: > > '/etc/cron.d/fcheck' looks like so: > # > # Regular cron job for the fcheck package > # > 30 */2 * * * root test -x /usr/sbin/fcheck && if ! nice ionice -c3 > /usr/sbin/fcheck -asxrf /etc/fcheck/fcheck.cfg >/var/run/fcheck.out 2>&1; > then mailx -s "ALERT: [fcheck] `hostname --fqdn`" root </var/run/fcheck.out > ; /usr/sbin/fcheck -cadsxlf /etc/fcheck/fcheck.cfg ; fi ; rm -f > /var/run/fcheck.out > > That seems like it should be "nice" but...it's not. I have to admit I > haven't done a lot of homework on this one, but I've Googled a bit. Anyone > have a clue? I have no idea what fcheck does, but the command above should put it in the idle IO priority class. However, to be honest I've never found ionice to be all that effective in general. Back when I used to run lvm+mdadm I think all the layers/buffering resulted in the prioritization getting lost by the time data got written to disk. With btrfs I mentioned in my talk a tendency to "flush and wait" and this applies just as much to ionice loads (a batch of writes will all return in near-zero time filling up the cache/log, and then at the next checkpoint the filesystem grinds to a crawl while it tries to finish writing out all that data that was accepted). I don't know the internals of how ionice actually works, but I suspect that there are basically multiple queues involved, and that ionice is governing access to a queue which isn't really in contention, which then feeds into some other queue which is in contention but by the time the request gets that far the kernel has already reported a successful write and is under the gun to honor its commitment to get the data on disk in a certain time. It is a bit frustrating, because if I run a task under ionice it means I don't care if it takes two weeks to finish - I don't want my other tasks starved for disk. And yet, I stare at my drives at 100% usage, unresponsiveness, high loads, and sometimes mythtv telling me that it has to drop a recording (even running at ionice -c1 - realtime). So, I suspect that the real issue here is that ionice isn't really robustly implemented in the kernel. However, I'm certainly open to illumination here if anybody has something to share - I'd love to be able to use it more reliably. Rich ___________________________________________________________________________ Philadelphia Linux Users Group -- http://www.phillylinux.org Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug