为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:kylin v10
【CPU】:海光
【问题描述】*:
1、mq-deadline是deadline对blk-mq IO路径的调度程序的修改,以支持多线程。kylin V10中是不是选择mq-deadline?
2、下面两种方法有什么区别?如何选择?
方法1:编写udev文件。
vi /etc/udev/rules.d/99-dm-ioscheduler.rules
ACTION=="add|change", KERNEL=="[sv]d[a-z]", ATTR{queue/rotational}"0", ATTR{queue/scheduler}="none"
ACTION"add|change", KERNEL=="[sv]d[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="mq-deadline"
udevadm control --reload-rules
方法2:修改/etc/default/grub
vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=mq-deadline"
update-grub
3、用udev文件的方法,重启OS是否有效?是否需要其他配置?
谢谢
使用第二种方法即可,如果是ssd盘的话,可以不用修改磁盘调度算法
如果能实现目的,哪种方式都可以。
修改完后重启服务器,确认下效果。
临时更改I/O调度方法:
echo mq-deadline > /sys/block/sda/queue/scheduler //将I/O调度算法临时改为mq-deadline,sda为盘符名称,根据实际情况修改
永久更改I/O调度算法:
vim /etc/udev/rules.d/99io_scheduler.rules //改文件如需新建,然后添加以下内容:
ACTION=="add|change",KERNEL=="sda",ATTR{queue/scheduler}="mq-deadline"
/centos7/
--查看对应的调度算法:
#cat /sys/block/{DEVICE-NAME}/queue/scheduler,注意把{DEVICE-NAME}替换会数据库所使用的对应的磁盘名称,以下以sda为例。
查看
cat /sys/block/vd*/queue/scheduler
cat /sys/block/sd*/queue/scheduler
如果调度算法是noop deadline [cfq],需要修改调度算法为deadline。
--临时更改
echo deadline > /sys/block/sda/queue/scheduler
--永久更改I/O调度方法
grubby --update-kernel=ALL --args="elevator=deadline"
--重启
reboot
/centos6修改方法/
--临时更改
echo deadline > /sys/block/sda/queue/scheduler
--永久的更改I/O调度方法
vi /boot/grub/menu.lst
在LANG的最后添加elevator= deadline
/UOS20修改办法/
--临时更改
echo deadline > /sys/block/sda/queue/scheduler
--永久更改I/O调度方法
vim /etc/udev/rules.d/io_scheduler.rules
#设置盘符sda的磁盘调度算法
ACTION=="add|change", KERNEL=="sda", ATTR{queue/scheduler}="mq_deadline "
D)执行命令,让文件生效,最后重启生效
udevadm trigger --name-match=sda