What does it mean when Linux has no I/O scheduler
It seems that on kernels >= 3.13 none
is not an alias of noop
anymore. It is shown when the blk-mq
I/O framework is in use; this means a complete bypass of the old schedulers, as blk-mq
has (right now) no schedulers at all to select.
On earlier kernels, none
really is a poorly-documented alias for noop
. See here for more details.
From this Debian Wiki:
Low-Latency IO-Scheduler
(This step is not necessary for SSDs using the NVMe protocol instead of SATA, which bypass the traditional I/O scheduler and use the
blk-mq
module instead.)The default I/O scheduler queues data to minimize seeks on HDDs, which is not necessary for SSDs. Thus, use the
"deadline"
scheduler that just ensures bulk transactions won't slow down small transactions: Installsysfsutils
andecho "block/sdX/queue/scheduler = deadline" >> /etc/sysfs.conf
(adjust sdX to match your SSD) reboot or
echo deadline > /sys/block/sdX/queue/scheduler
So, the answer is: none
is NOT an alias for noop
. none
means "the scheduler is not used".
None is not an alias for noop.
None is displayed because no scheduler is in use. SSDs using the NVMe protocol instead of SATA bypass the traditional I/O scheduler.