Linux - GeneralThis Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
suppose i have 10 IO tasks outstanding - each are reads and each space out evenly on the hard drive .... how does the kernel rotate between the IO tasks? how often does it switch from 1 IO to another?
That would be 10 I/O requests, not tasks. In simple terms, the I/Os are queued, in sector address order to minimise head thrashing. Normally if new I/Os come in they are inserted in order unless this causes some of the pending I/Os to get delayed too long in which case they will get preferential scheduling.
How all this is handled depends on the scheduler - as I said that's the 10,000 foot view.
But, the only way to know which is best for you is to try it out. You can do so dynamically (while the system is running, in fact, right this very moment) by echoing the name into /sys/block/sda/queue/scheduler where sda is whatever block device you want...
The I/O scheduler determines the order in which physical requests are carried out, but there are also many buffers and caches that become involved ... on the hardware and the software level.
Under high and persistent I/O request loads, a difference in scheduler algorithms may become noticeable.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.