Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a server with a big hardware RAID6 array that's been configured with two volumes, presented by Linux as sda and sdb (yeah, I know, but it's a rented colo that came configured this way, and sadly I have to live with it).

I have an I/O-intensive process that uses sdb. I've run with ionice -c3, as I want it to take lower priority than anything else. Unfortunately, ionice doesn't know that the two devices are actually sharing the same array's bandwidth. When that process is busy, the kernel sees that sdb is quiet and gives it all the bandwidth it needs. However, this can make sda very slow, because (as I understand it) ionice works on a per-device basis.

Is there any way of getting the kernel to balance disk I/O across all devices?

share|improve this question

What IO scheduler are you using?

cat /sys/block/<disk>/queue/scheduler

It will show you which one you're running. I'd try noop (which is pretty much first come, first serve), deadline and CFQ and see which is appropriate for you.

CFQ is the default for RHEL/SUSE, deadline for Ubuntu and noop for no one (but should let the backend device handle your scheduling instead of Linux trying to balance it.

share|improve this answer

Your Answer


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.