问题描述
我的笔记本电脑中有一个SSD,并且被告知最好切换到”noop”调度程序。
我如何更改为noop调度程序,以及在哪里进行更改,以使其在重新启动后保持不变?
最佳解决方法
编辑/etc /default /grub,例如gksudo gedit /etc/default/grub
,在这里您需要添加lift = noop。
将GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
更改为GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"
。
然后运行sudo update-grub2
并重新启动。
次佳解决方法
假设您的硬盘为/dev/sda
。然后,您可以检查一下当前正在使用什么调度程序:
cat /sys/block/sda/queue/scheduler
(当前使用的调度程序将由[
]
括号包围。)
您可以使它使用noop调度程序:
echo noop > /sys/block/sda/queue/scheduler
有关更多信息,请参见this article。
要使更改保持不变,可以将命令放在/etc/rc.local
中。
第三种解决方法
This Debian reference显示了如何动态检测SSD并相应地更改调度程序:
In systems with different drive types you can adjust settings with a udev rule (create /etc/udev/rules.d/60-ssd-scheduler.rules):
# Set deadline scheduler for non-rotating disks
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参考文献中引用,对于first-time SSD用户,它具有许多其他要素。