我通过组合 4 个 HDD 创建了一个 RAID 5 设备块。
我的设备名称是md1。
但是 /sys/block/md1/queue/scheduler 文件在执行 cat 时输出“none”。
并且在使用 vim 编辑它之后它会抛出
/sys/devices/virtual/block/md1/queue/scheduler" E667: Fsync failed
我也尝试使用 sysctl.conf 并添加
block.md1.queue.scheduler = deadline
但它再次抛出
error: "block.md1.queue.scheduler" is an unknown key
我真的没有办法了。请帮帮我。
答案1
您可以将 I/O 调度程序应用于实际块设备;例如您的 /dev/sdX 设备或默认全局附加到内核启动命令行/etc/grub
...(添加elevator=deadline
)
但由于您使用的是 EL6(Red Hat、CentOS 等),最有效的方法是使用调整框架。
就你的情况而言,
yum install tuned tuned-utils
然后选择一个能够为您的应用程序提供正确设置的配置文件。例如:
tuned-adm profile throughput-performance
或者
tuned-adm profile enterprise-storage
答案2
打印所有物理磁盘的当前调度程序
对于 $(find /sys -name scheduler | egrep '(/sd|/hd)') 中的 d;执行 echo $d $(cat $d);完成
cat /sys/devices/virtual/block/md1/queue/scheduler
[noop] 截止期限 cfq
回显“截止日期”> /sys/devices/virtual/block/md1/queue/scheduler