系统盘是固态盘,数据盘是机械盘,如何设置相应的磁盘调度算法?

【问题描述】

若出现以下场景:数据库软件安装在系统盘,系统盘为机械盘,实例目录放置在机械盘,此时应如何设置调度算法?

【问题原因】

固态盘(SSD)和机械盘(HDD)的物理读写特性不同,不同的磁盘 I/O 调度算法对二者的性能表现影响不同,因此需要根据磁盘所在的盘类型分别配置合适的调度算法,以提升数据库的存储 I/O 性能。

【问题解决】

数据库软件安装在系统盘,使用 noop 调度算法,实例目录放置在机械盘,使用 deadline 调度算法。 假如 sda 是系统盘,sdb 是机械盘,可通过以下方法进行设置(该方法适用于在麒麟 V10,centso7 和 rh6):

---编辑/etc/udev/rules.d/io_scheduler.rules 文件
vi /etc/udev/rules.d/io_scheduler.rules
ACTION=="add|change",KERNEL=="sda",ATTR{queue/scheduler}="noop"
ACTION=="add|change",KERNEL=="sda",ATTR{queue/scheduler}="deadline"

---使文件修改内容生效,执行如下命令或者重启生效
udevadm trigger --name-match=sda;udevadm trigger --name-match=sdb