缺少磁盘 io 调度程序

缺少磁盘 io 调度程序

问题是,调度人员在哪里?

# for f in /sys/block/sd?/queue/scheduler; do printf "$f is "; cat $f; done
/sys/block/sda/queue/scheduler is [mq-deadline] none
/sys/block/sdb/queue/scheduler is [mq-deadline] none
/sys/block/sdc/queue/scheduler is [mq-deadline] none
/sys/block/sdd/queue/scheduler is [mq-deadline] none

# uname -r
5.0.0-25-generic

我想为我的硬盘设置 cfq,而不是 deadline

答案1

从 Ubuntu Eoan 19.10 开始,旧版 CFQ I/O 调度程序不再可用,因为内核已弃用该程序。Canonical 内核工程师不会支持主线 5.3 内核中不支持的程序。

您可能会发现 bfq 或 kyber 值得一试。如果您有非旋转驱动器(例如 SSD),当前默认设置应该是完美的。如果您有旋转多队列驱动器,同样,默认设置可能没问题,无需更改 I/O 调度程序。

答案2

内核 5 使用以下多队列 I/O 调度程序:

  • 拜托,
  • 凯伯,
  • mq-截止期限
sudo modprobe bfq
cat /sys/block/sda/queue/scheduler
[mq-deadline] bfq none

并启用它:

echo "bfq" | sudo tee /sys/block/sda/queue/scheduler

我从这里获取了这些信息:
https://wiki.ubuntu.com/Kernel/Reference/IOSchedulers

相关内容