我想永久更改 Fedora 20 上特定磁盘的 I/O 调度程序。根据我的发现,这可以通过以 root 身份执行以下 shell 行来实现:
echo {SCHEDULER-NAME} > /sys/block/{DEVICE-NAME}/queue/scheduler
但是,重新启动后更改会丢失。似乎实现我想要的一种方法是创建一个 systemd 服务,但我完全迷失了,因为它必须在安装磁盘后执行。有人可以帮我写这样一个 systemd 服务吗?也欢迎任何其他可行的解决方案。
我想永久更改 Fedora 20 上特定磁盘的 I/O 调度程序。根据我的发现,这可以通过以 root 身份执行以下 shell 行来实现:
echo {SCHEDULER-NAME} > /sys/block/{DEVICE-NAME}/queue/scheduler
但是,重新启动后更改会丢失。似乎实现我想要的一种方法是创建一个 systemd 服务,但我完全迷失了,因为它必须在安装磁盘后执行。有人可以帮我写这样一个 systemd 服务吗?也欢迎任何其他可行的解决方案。
和包
tuned
可tuned-utils
用于 Fedora(它们也在 Red Hat 中)。这是一个系统服务,可以即时应用预定义或用户定义的系统配置文件和可调参数,包括挂载选项、磁盘调度程序、sysctl 参数等。许多 Liinux 管理员忽略了这些设置。请参阅 Fedora 20 手册:
http ://docs.fedoraproject.org/en-US/Fedora/20/html/Power_Management_Guide/sect-tuned-installation-and-usage.html
就像是:
或者
这是 RHEL 的设置时间表。Fedora 可能略有不同。
我知道您正在寻找特定磁盘上的设置,但我倾向于将 I/O 调度参数应用于所有磁盘。无论哪种方式,看看预定义的配置文件是否适合您(无需重复工作)。如果没有,配置文件很容易定制。
您只需在/etc/systemd/system/io-scheduler.service中创建一个文件,其内容如下:
然后,启用该服务以在启动时自动启动并为当前会话启动它:
您可以通过将以下内容添加到内核命令行来更改所有磁盘的默认调度程序,该命令行可以在以下位置找到
/boot/grub/menu.lst
:elevator={SCHEDULER-NAME}
@ewwhite,您已经提供了操作人员未提出的问题的答案。
您建议的资源中没有提供“永久更改特定磁盘的 I/O 调度程序”的答案,并且评论“Fedora 和 Red Hat 记录和预期的方式”由于我不会的几个原因而脱离基础不要进入这里。
要更改特定磁盘的 io 调度程序,操作选择了正确的方法:
echo noop > /sys/block/sda/queue/scheduler
他选择如何运行这个命令有些随意。这可以通过配置管理应用程序、脚本或像他所做的那样创建服务单元来完成。
@boscoe - 这将是 grub2 系统上的一个问题。这个问题是针对F20的。此外,它将电梯应用于所有磁盘,这不是操作所追求的。