Updated@2015/12/15
为什么可能会去修改Linux I/O Scheduler (elevator)?以及什么是I/O Scheduler,应该如何为数据库系统选择合适的I/O Scheduler?可以参看以下文章。
- Linux, i/o scheduler and ASM – 在极大I/O压力的情况下,采用Deadline scheduler可能会提高5%-10%的I/O性能。
- Choosing an I/O Scheduler for Red Hat® Enterprise Linux® 4 and the 2.6 Kernel – 在大多数情况下,默认的CFQ scheduler已经足够好,无需修改。
- Linux I/O Scheduler
- What is the recommended I/O scheduler for a database workload in Red Hat Enterprise Linux? – 在RHEL 4, 5, 6中CFQ为默认的调度模式,而在RHEL7中已经使用deadline为默认调度模式
- Tuning Linux I/O Scheduler for SSDs – 如果磁盘是SSD固态硬盘,那么使用NOOP模式更好
那么如果我们确认要修改I/O scheduler,该如何进行? 参考 – How to change default I/O scheduler?
大体上来说就是,比如像修改I/O scheduler为dealine:
- 在RHEL4/OEL4中,修改/boot/grub/grub.conf文件,添加elevator=deadline,重启生效,比如:
title Red Hat Enterprise Linux Server (2.6.18-8.el5) root (hd0,0) kernel /vmlinuz-2.6.18-8.el5 ro root=/dev/vg0/lv0 elevator=deadline initrd /initrd-2.6.18-8.el5.img
- 在RHEL5/OEL5以及之后的版本中(比如RHEL6和RHEL7),可以针对每块磁盘制定I/O Scheduler,修改完毕立刻生效,比如:
--当前是是noop # cat /sys/block/sda1/queue/scheduler [noop] anticipatory deadline cfq --修改为deadline # echo 'deadline'>/sys/block/sda1/queue/scheduler --立刻生效 # cat /sys/block/sda1/queue/scheduler noop anticipatory [deadline] cfq
请教一下“在RHEL5/OEL5中,可以针对每块磁盘制定I/O Scheduler”
这个设置不是不在主机重启后,又变为了cfq的模式.
另外一个是如果是多路径的话,应该如何设置
谢谢!
重启以后也仍然是生效的。
我没有测试过多路径的情况,但是我认为你可以直接在多路径下面的每块盘上单独设置I/O Scheduler。