即时更改磁盘调度程序

即时更改磁盘调度程序

Linux 磁盘调度程序可以通过写入来动态更改吗/sys/block/sda/queue/scheduler?更改时是否应该停止/启动应用程序(例如Mysql)?

答案1

您可以随时更改 IO 调度程序,而无需担心。它受到适当锁定的保护,以确保不会丢失任何事务。

答案2

是的,您可以,不,应用程序不需要停止/启动。这是设计使然,这样您就可以(相对)安全地在生产系统上尝试不同的系统,而无需停机。

它确实会引起“打嗝”;允许完成正在进行的 IO,并阻止新的 IO 请求,直到安装新的调度程序。

您还可以为每个块设备设置不同的 IO 调度程序(如内核所见,例如 /dev/sda)。

答案3

  1. 您可以 echo deadline > /sys/block/sda/queue/scheduler在应用程序开始时添加一个(作为示例),并echo使用初始调度程序在末尾添加另一个.. echo cfq > /sys/block/sda/queue/scheduler

  2. 您可以编写一个cron脚本来验证应用程序的启动并相应地更改调度程序。

相关内容