我想永久更改 Fedora 20 上特定磁盘的 I/O 调度程序。根据我的发现,这可以通过以 root 身份执行以下 shell 行来实现:
echo {SCHEDULER-NAME} > /sys/block/{DEVICE-NAME}/queue/scheduler
但是,重新启动后更改将丢失。似乎实现我想要的一种方法是创建一个 systemd 服务,但我完全迷失了,因为它必须在安装磁盘后执行。有人能帮我写一个这样的系统服务吗?也欢迎任何其他可行的解决方案。
在tuned和tuned-utilsFedora的pacakages可供选择(他们也是红帽)。这是一个系统服务,可以即时应用预定义或用户定义的系统配置文件和可调参数,包括挂载选项、磁盘调度程序、sysctl 参数等。许多 Liinux 管理员忽略了这些设置。
请参阅 Fedora 20 手册:http :
//docs.fedoraproject.org/en-US/Fedora/20/html/Power_Management_Guide/sect-tuned-installation-and-usage.html
就像是:
tuned-adm profile virtual-guest
Run Code Online (Sandbox Code Playgroud)
或者
tuned-adm profile enterprise-storage
Run Code Online (Sandbox Code Playgroud)
这是 RHEL 的设置时间表。Fedora 可能略有不同。

我知道您正在寻找特定磁盘上的设置,但我倾向于将 I/O 调度参数应用于所有磁盘。无论哪种方式,查看预定义的配置文件是否适合您(无需重复工作)。如果没有,配置文件很容易定制。
您只需在/etc/systemd/system/io-scheduler.service 中创建一个包含以下内容的文件:
[Unit]
Description=I/O Scheduler Setter
After=local-fs.target
[Service]
Type=oneshot
ExecStart=/bin/bash -c 'echo noop > /sys/block/sda/queue/scheduler'
TimeoutSec=0
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
然后,启用启动时自动启动的服务,并为当前会话启动它:
chmod 755 /etc/systemd/system/io-scheduler.service
systemctl enable io-scheduler.service
systemctl start io-scheduler.service
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6626 次 |
| 最近记录: |