如何在Linux中永久更改IO调度程序

时间:2020-01-09 10:38:57  来源:igfitidea点击:

在本文中,我将分享在Linux中永久或者临时更改IO调度程序的步骤。

I/O调度程序的选择是更具争议性的可调Linux性能功能之一,因为没有可用的公认准则。

  • 之所以使用名称电梯,是因为它们如何对传入的请求进行排序。

  • 考虑目前位于二楼的一台真正的电梯。

  • 也许第一个人要求第九层,然后第二个人要求第三层。

  • 电梯将不会按照要求的顺序访问楼层;它将首先访问三楼,然后继续到第九层。

  • 调度程序升降机确实以相似的方式读取和写入排序以进行优化。

如何更改运行时(临时)的IO调度程序?

我们可以使用以下文件和命令检查当前活动的调度程序

# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq

更改当前会话的活动调度程序

# echo cfq > /sys/block/sda/queue/scheduler

现在再次验证活动调度程序

# cat /sys/block/sda/queue/scheduler
noop deadline [cfq]

说明:

此更改不是持久性的,在节点重新启动后将切换回截止日期

如何使用GRUB2永久更改IO调度程序?

我们可以在内核启动时设置默认的电梯调度程序。
修改GRUB配置,并以下面所示的格式在GRUB_CMDLINE_LINUX下添加我们选择的电梯。

# cat /etc/sysconfig/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet elevator=cfq"
GRUB_DISABLE_RECOVERY="true"

接下来重建initramfs

# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-862.14.4.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-862.14.4.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-43f0510283784c858d39e38e358b4669
Found initrd image: /boot/initramfs-0-rescue-43f0510283784c858d39e38e358b4669.img
done

重新启动节点以激活更改

节点备份后,检查活动调度程序

# cat /sys/block/sda/queue/scheduler
noop deadline [cfq]

因此,正如预期的那样,活动调度程序是我们在内核中设置的cfq

如何使用GRUB2永久更改IO调度程序?

我们还可以使用调整的配置文件来永久更改活动的IO调度程序。
创建自己的调整后的配置文件,并在调整后的内容中添加以下内容。

conf文件

[disk]
elevator=deadline

其中我们将截止日期设置为我的默认IO调度程序。

接下来,激活已调整的配置文件。
这里的" theitroad"是我的自定义调整后的配置文件

# tuned-adm profile theitroad

现在验证活动调度程序

# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq

因此,正如预期的那样,我们的活动调度程序再次发生了变化。

说明:

现在,上述步骤可以更改活动IO调度程序,并使它持久地重新引导,但是要修改属于这些电梯的可调参数之一