![缺少磁盘 io 调度程序](https://linux22.com/image/1167541/%E7%BC%BA%E5%B0%91%E7%A3%81%E7%9B%98%20io%20%E8%B0%83%E5%BA%A6%E7%A8%8B%E5%BA%8F.png)
问题是,调度人员在哪里?
# 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