advertisement logo

 

The Linux kernel input/output scheduler (IO Schedulers) controls the way the kernel handles read/write to disks. Different I/O schedulers may have different impact on certain workloads. Here are the list of available Linux I/O schedulers:

1) Noop
Noop scheduler is the simplest IO scheduler available in the kernel. It does not perform sorting or seek-prevention. It is intended for devices that has no mechanical parts or is capable of random access such as SSD or flash-disk.

2) Anticipatory (AS)
Anticipatory is the default I/O scheduler for Linux kernel (2.6.x) until it was replaced by CFQ. It tries to optimize disk I/O by minimizing disk seeking/head movement whenever possible. However, it does has performance impact on file and database servers

3) Deadline
As the name implies, the deadline scheduler imposes deadline on all operations. This is to prevent resource starvation, so that every operation can be completed on time without being starved by other operations. The kernel documentation suggests Deadline scheduler to be used on storage and database servers

4) Completely fair-scheduling (CFQ)
CFQ tries to allocate the same resources to all users in the same time interval, hence the name. It tries to allocate fair amount of resources to all users, which would be ideal to use this on a multi-user/multi-purpose system. It is the default scheduler for Linux kernel since 2.6.18.


Share this post

Keep updated with the latest posts, be a part of over 1,000 subscribers! : email iconSubscribe to your email

3 smashing comments for this post.

  1. Remus Said:

    Are you killing me?

    You are mixing up CFS and BFS (which is CPU scheduler) with CFQ and BFQ (which is IO scheduler).

    They are totally different things.

  2. Fitzcarraldo Said:

    The Anticipatory Scheduler does not exist in kernel 2.6.33 and later.

  3. Remus Said:

    I think you are trying to correct the previous mistake. However, you are still missing the correct information.

    CFQ is “Completely Fair Queuing”, not “Completely Fair Scheduling”.
    Here is the explanation:
    http://en.wikipedia.org/wiki/CFQ

    BFQ is “Budget Fair Queuing”
    http://retis.sssup.it/~fabio/linux/bfq/description.php

Leave a Comment

About Author

Mohammad Hafiz (mypapit)

Blogger
Alor Setar, Kedah, MALAYSIA


I work with a local university in Malaysia. I code for fun and I support Free and Open Source Software.


Visit