I/O scheduling

Input/output (I/O) scheduling is the method that computer operating systems use to decide in which order the block I/O operations will be submitted to storage volumes. I/O scheduling is sometimes called disk scheduling.

The position of I/O schedulers within various layers of the Linux kernel's storage stack.[1]

I/O scheduling

I/O scheduling usually has to work with hard disk drives that have long access times for requests placed far away from the current position of the disk head (this operation is called a seek). To minimize the effect this has on system performance, most I/O schedulers implement a variant of the elevator algorithm that reorders the incoming randomly ordered requests so the associated data would be accessed with minimal arm/head movement.

I/O schedulers can have many purposes depending on the goals; common purposes include the following:

  • To minimize time wasted by hard disk seeks
  • To prioritize a certain processes' I/O requests
  • To give a share of the disk bandwidth to each running process
  • To guarantee that certain requests will be issued before a particular deadline

Scheduling disciplines

Common scheduling disciplines include the following:

gollark: No, you could just fix it quite easily if you were willing to make it length-prefixed instead of the insane delimetery thing.
gollark: HTTP is fine, I think. It's one of the web bits I like. Apart from... almost everything about file uploads, and how headers work.
gollark: Well, the big one is that it isn't end to end encrypted and the security stuff was all tacked on later.
gollark: It's a bad protocol. It just happens to be kept because the others are worse, and it's at least federated and fairly standardized.
gollark: Email isn't actually very good.

See also

References

  1. Werner Fischer; Georg Schönberger (2015-06-01). "Linux Storage Stack Diagram". Thomas-Krenn.AG. Retrieved 2015-06-08.
  2. "mClock: Handling Throughput Variability for Hypervisor IO Scheduling". VMware Inc. Retrieved 2015-07-12.
  3. "Budget Fair Queueing I/O Scheduler".
  4. "BFQ I/O Scheduler Queued For Linux 4.12 - Phoronix". www.phoronix.com.
  5. "blk-mq: Kyber multiqueue I/O scheduler [LWN.net]". lwn.net. 14 Apr 2017. Retrieved 2019-07-19.
  6. "BFQ I/O Scheduler Lands Along With New Kyber Scheduler - Phoronix". www.phoronix.com. 1 May 2017.

Further reading

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.