查看系统当前IO调度算法:
[root@IO-0-1 ~]# cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq] ----括号中为当前使用的算法
修改IO调度算法:
[root@IO-0-1 ~]# echo deadline > /sys/block/sda/queue/scheduler
[root@IO-0-1 ~]# cat /sys/block/sda/queue/scheduler
noop anticipatory [deadline] cfq 可以看到IO调度算法已经修改为deadline
针对MYSQL数据库服务器的IO调度算法优化设置:
1.CFQ使用于IO大小非常均匀的场景
2.比较复杂的OLTP环境最好使用DeadLine算法
3.IO性能不是瓶颈的时候可以使用Noop算法
4.Anticipatory适合大数据顺序顺序存储的文件服务器,如ftp server和web server,不适合数据库环境,DB服务器不要使用这种算法。
5.新兴的固态硬盘比如SSD、Fusion IO上,最简单的NOOP反而可能是最好的算法,因为其他三个算法的优化是基于缩短寻道时间的,而固态硬盘没有所谓的寻道时间且IO响应时间非常短。
deadline可调的参数
如:[root@IO-0-1 ~]# cat /sys/block/sdh/queue/iosched/read_expire
500
遗憾的是这些值得大小具体该多少没有固定的答案。。。
阅读(6159) | 评论(0) | 转发(0) |