我可以使用其中的配置文件/proc
来管理目录设置,但是该目录是否有等效的工具?我想将 I/O 调度程序更改为永久。sysctl
/etc/sysctl.d
/sys
bfq
我是否应该创建指向某个脚本的服务文件,其中包含:
echo bfq > /sys/block/sda/queue/scheduler
?
答案1
我通常创建 udev 规则来持久设置 sysfs 属性。例如:
ACTION=="add|change", KERNEL=="sda", ATTR{queue/scheduler}="noop"
ACTION=="add|change", KERNEL=="sda", ATTR{queue/nr_requests}="1024"
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{device/model}=="VRAID", ATTR{queue/scheduler}="noop"
上面的代码显式地将“noop”设置为调度程序sda
,然后在同一驱动器上设置nr_requests
为 1024,然后过滤以“VRAID”为模型的块设备(这将是 SAN 卷)并将其设置在那里。如果您想了解有关如何编写规则的更多信息干得好。
这样做的好处是可以让您为尚不存在的设备设置默认值。当设备呈现给系统时,将调用这些规则。例如,如果我登录到 iSCSI LUN,那么它将以“noop”调度程序开始,而无需我执行任何操作。