切换调度器

每个 IO 队列都有一组与之相关的 IO 调度器可调参数。这些可调参数控制着 IO 调度器的工作方式。您可以在以下位置找到这些条目:

/sys/block/<device>/queue/iosched

假设您的 sysfs 挂载在 /sys 上。如果您没有挂载 sysfs,您可以通过键入以下命令来挂载:

# mount none /sys -t sysfs

可以为给定的块设备动态更改 IO 调度器,以选择 mq-deadline、none、bfq 或 kyber 调度器之一,这可以提高该设备的吞吐量。

要设置特定的调度器,只需执行以下操作:

echo SCHEDNAME > /sys/block/DEV/queue/scheduler

其中 SCHEDNAME 是已定义的 IO 调度器的名称,而 DEV 是设备名称(hda、hdb、sga 或您拥有的任何名称)。

可以通过简单地执行 “cat /sys/block/DEV/queue/scheduler” 来找到已定义的调度器列表 - 将显示有效名称的列表,当前选择的调度器将显示在括号中。

# cat /sys/block/sda/queue/scheduler
[mq-deadline] kyber bfq none
# echo none >/sys/block/sda/queue/scheduler
# cat /sys/block/sda/queue/scheduler
[none] mq-deadline kyber bfq