Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

The ionice man page says

A program running with idle io priority will only get disk time when no other program has asked for disk io for a defined grace period.

Where is this "grace period" defined? Is it visable/tunable (perhaps via /sys)?

share|improve this question
2  
What are you trying to do? OS and distribution version, please? –  ewwhite Feb 24 '12 at 15:22
    
linux (any distribution with the CFQ io scheduler). –  jhfrontz Feb 24 '12 at 15:47
    
I tend not to use the CFQ scheduler if I care about application performance. deadline or noop make more sense in many situations... Using either of those renders ionice unusable. What are you trying to do? –  ewwhite Feb 24 '12 at 15:53
    
I'm trying to understand what the grace period is so that I can figure out if it makes sense for the load that I'm putting on a box. –  jhfrontz Feb 24 '12 at 15:58
add comment

1 Answer

The grace period is 250 milliseconds.

http://lkml.indiana.edu/hypermail/linux/kernel/0412.2/1099.html

There is an idle scheduling class, which only runs when nothing else
is using the disk. A grace period is defined for which idle has to
wait before getting disk access when other io has run. This defaults
to 250ms currently.

You didn't provide the OS version or distribution (and yes, it does make a difference), but the tunable for RHEL/CentOS 5+6 is defined here as fifo_expire_async in /sys/block/[device]/queue/iosched/ (where [device] is sda, sdb, cciss0, etc.).

share|improve this answer
    
If I'm understanding that RH page correctly, is it not actually slice_idle (and thus 8 ms)? –  jhfrontz Feb 24 '12 at 16:42
    
The more I play around with this, the more I'm convincing myself that the grace period is zero. I'm on FC7 and I've tried writing some I/O intensive processes and assigning them to different scheduling classes . No matter how much I saturate the cfq-scheduled block device, I never see any blocking on the "idle" processes. I think maybe it's time for me to ask a more general question of "how do you test that ionice is actually working". –  jhfrontz Mar 1 '12 at 15:24
    
I'm not sure. As I stated earlier, you may want to look at one of the other scheduler algorithms. I prefer deadline over cfq. –  ewwhite Mar 1 '12 at 15:33
    
The more general question is over at serverfault.com/q/369382/95287 –  jhfrontz Mar 14 '12 at 5:12
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.