December 4, 2018


Linux disk scheduling algorithms


techrepublic.com/article/how-to-change-the-linux-io-scheduler-to-fit-your-needs/
en.wikipedia.org/wiki/Deadline_scheduler

Ok, on 11/15/18 I learned about disk schedulers in my Operating Systems class. On kernel 4.18 -ish this is the output:

When I ran this, I didn't realize that sda is my old SATA3 SSD. Linux Manjaro minimal.

$ cat /sys/block/sda/queue/scheduler
noop deadline [cfq] bfq-sq

A friend ran this on Antergos, supposedly sda is a NVMe.
$ cat /sys/block/sda/queue/scheduler
[mq-deadline] kyber bfq none

Now I run the same commands again a month later and I run the same command:
$ uname -r && cat /sys/block/sda/queue/scheduler
4.19.6-1-MANJARO
[mq-deadline] kyber bfq none

Now, all my drives list that same scheduler (mq-deadline). A SATA3 SSD, 500 GB HDD, 3 TB HDD. My two NVMe drives list: none. And here is the reasoning on this link.
serverfault.com/questions/693348/what-does-it-mean-when-linux-has-no-i-o-scheduler/693380

In recent kernel changes in 4.20

Most Linux distributions default to no I/O scheduler in the case of NVMe SSDs, but for your viewing pleasure today is a look at the performance against MQ Deadline, Kyber, and BFQ.
phoronix.com/scan.php?page=article&item=linux-420-io&num=1