我如何切换到 noop 调度程序?

我如何切换到 noop 调度程序?

我的笔记本电脑中有一个 SSD,并且有人告诉我最好切换到“noop”调度程序。

我如何更改为 noop 调度程序,以及在哪里进行更改以使其在重启后仍然有效?

答案1

假设你的硬盘是/dev/sda。那么你可以检查一下它当前正在使用什么调度程序:

cat /sys/block/sda/queue/scheduler

(当前正在使用的调度程序将用[ ]括号括起来。)

你可以让它使用 noop 调度程序:

echo noop > /sys/block/sda/queue/scheduler

本文了解更多信息。

为了使更改持久化,您可以将命令放入 中/etc/rc.local

答案2

编辑/etc/default/grub,例如gksudo gedit /etc/default/grub,这里需要添加elevator=noop。

改成。GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"

然后运行sudo update-grub2并重新启动。

答案3

Debian 参考展示如何动态检测 SSD 并相应地更改调度程序:

在具有不同驱动器类型的系统中,您可以使用 udev 规则调整设置(创建 /etc/udev/rules.d/60-ssd-scheduler.rules):

# 为非旋转磁盘设置截止期限调度程序

 ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0",ATTR{queue/scheduler}="deadline"

为了确保您的内核可以检测旋转状态:

$ for f in /sys/block/sd?/queue/rotational; do printf "$f is "; cat $f; done
/sys/block/sda/queue/rotational is 1
/sys/block/sdb/queue/rotational is 1
/sys/block/sdc/queue/rotational is 0   <=== Only this is SSD!

以上所有内容均直接引用自 Debian 参考,其中还有许多其他对首次使用 SSD 的用户感兴趣的元素。

答案4

vi /etc/rc.local

添加行

for f in /sys/block/sd?/queue/scheduler; do echo "noop" > $f; cat $f; done

然后运行命令

chmod +x /etc/rc.local

相关内容