I understand how ionice can help you when you have multiple processes requesting access to the same disk resources, but how does it work when you have multiple disks?

For example, you have one rsync operation moving data from Drive A -> Drive B, and another rsync moving data from Drive C -> Drive D.

In theory, since they are not competing for resources, ionice'ing one of these rsync processes shouldn't change its throughput. Is this how it works, or will it still impact performance?

Additionally, is there some "upper limit" on total I/O one might experience on a linux system that is independent of drive speed? Like if you hooked up 100 SSD drives, at some point would the OS run into a bottleneck aside from drive speed?


On Linux, drives are scheduled independently from each other. You can even set the IO scheduling algorithm to be different for different drives on the same system, by writing to /sys/block/<device>/queue/iosched.

The bandwidth between memory and the disks can indeed become a bottleneck. This is why hardware RAID makes sense: the data is sent to the RAID controller once, as opposed to each disk separately. You can also increase this bandwidth by attaching those 100 SSDs to more than one computer, distributing the load between them.

I'm not sure how the IO scheduler takes this into account, but I don't think it does.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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