The CFQ IO scheduler supports priorities though I am not sure that Deadline does (I believe not). The premise is that when I renice a task it gets a larger share of CPU under the Completely Fair Scheduler. Since this task is likely to run more often it would call for IO more often as well when needed, correct?

I am wondering if even though the IO scheduler does not support priorities that the task would get more/less IO when reniced? Or is the disk/memory management completely separate?


Disk and memory scheduling are entirely different. In the absence of an IO priority scheduler, IO will be handled on a first come first served basis. If the system is IO bound, then all processes run in a more or less round robin basis until all are waiting for I/O. The nice priority of a process will have little impact on its scheduling frequency.

Recent versions of Linux have added an ionice facility. The idle priority is intended to prevent IO degradation which may occur when the heads are moved to a different area of the disk delaying writes for other processes.

Renicing an I/O bound process is unlikely to significantly slow its I/O rate unless the load average exceeds the number of CPUs. If unused CPU cycles are available, the process will likely be scheduled frequently enough to keep its I/O rate close to what it would be at a regular priority.

Recent Linux kernels will modify the IO priority of reniced process which have not had an IO priority set. The 40 CPU priority levels are mapped to 8 IO priority levels, so a significant nice change may be required to change the IO priority.

Having a significant number of CPU bound processes running at or above the I/O bound processes priority may slow its I/O rate. The process will still get time slices resulting in I/O occurring.

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.