Ubuntu 有ionice
,但据我所知,它完全没有任何作用。
我怀疑这是因为Ubuntu 用截止日期替换了 cfq 并且截止日期不支持优先级。
有没有办法在 Ubuntu 上优先考虑 I/O?
编辑:上下文是我有一个数据库还原,它很容易消耗我所有的 I/O 并使我的系统在完成之前无法使用。我希望它可以继续用于其他任务。
Ubuntu 有ionice
,但据我所知,它完全没有任何作用。
我怀疑这是因为Ubuntu 用截止日期替换了 cfq 并且截止日期不支持优先级。
有没有办法在 Ubuntu 上优先考虑 I/O?
编辑:上下文是我有一个数据库还原,它很容易消耗我所有的 I/O 并使我的系统在完成之前无法使用。我希望它可以继续用于其他任务。
我有一个 python 脚本,想每天凌晨 3:00 运行它,但我无法在 Windows 上安排同样的任务。
我试图在终端中执行以下命令
sudo apt-get install gnome-schedule
他返回给我错误
E: Unable to find gnome-schedule package
如果有任何 linux 程序来安排任务,我不知道这个错误的原因,任何人都可以推荐我等...
我的 ubuntu 是 19.10
:)
您不能在 Kubuntu 19.04 中选择 CFQ 调度程序,因为它已从 5.0 内核中删除。在我的情况下,我需要 CFQ,因为它在以 Windows 10 作为来宾 SO 运行虚拟机时提供旋转硬盘驱动器的最佳性能,其他调度程序使系统无法使用。默认情况下,安装中的 Kubuntu 19.04 仅提供 2 部电梯 mq-deadline,在我的情况下,没有一个提供比 CFQ 差得多的性能。
sudo cat/sys/block/sda/queue/scheduler
mq-deadline none
只有我必须尝试使用默认情况下未出现在安装中的其他 2 个调度程序,这些调度程序是 BFQ 和 Kyber。
接下来我将描述如何启用 BFQ 和 Kyber 模块
1)首先使用以下命令验证系统中是否存在模块:
sudo modprobe bfq
sudo modprobe kyber-iosched
如果没有错误,您可以使用命令验证模块是否已加载
sudo cat/sys/block/sda/queue/scheduler
必须返回
mq-deadline [bfq] kyber none
2)使这些模块在系统启动时加载:
sudo -i
echo kyber-iosched > /etc/modules-load.d/kyber-oisched.conf
echo bfq > /etc/modules-load.d/bfq.conf
3)下一步是告诉系统使用哪个调度器,如果文件不存在则创建一个文件:
/etc/udev/rules.d/60-scheduler.rules
用以下几行
# set cfq scheduler
ACTION=="add|change",KERNEL=="sd[a-z]",ATTR{queue/rotational}=="1",ATTR{queue/scheduler}="bfq"
ACTION=="add|change",KERNEL=="sr[0-9]",ATTR{queue/rotational}=="1",ATTR{queue/scheduler}="bfq"
如果您想尝试 kyber 而不是 BFQ,请将显示“bfq”的行的最后一个单词替换为“kyber”
4)让系统识别变化
须藤 udevadm 控制 --reload; sudo udevadm 触发器
并且更改已通过验证
sudo cat/sys/block/sda/queue/scheduler
mq-deadline kyber [bfq] none
完成的。
资料来源:
https://community.chakralinux.org/t/how-to-enable-the-bfq-io-scheduler-on-kernel-4-12/6418
https://unix.stackexchange.com/questions/375600/how-to-enable-and-use-the-bfq-scheduler#376136