linux操作系统SSD磁盘IO调度算法及配置方法[特指kylin、suse]

简述总结

磁盘IO调度算法由linux内核提供支持,在各种linux发行版都可以设置并适用
1、查询磁盘名称

lsblk

2、查看具体盘的算法策略
suse与kylin操作系统查看方法一致

cat /sys/block/sdx具体盘名称/queue/scheduler
如:cat /sys/block/sda/queue/scheduler
显示结果中方括号括住的为当前磁盘IO调度算法

3、临时调整磁盘IO调度算法,重启失效
suse与kylin操作系统查看方法一致
以mq-deadline举例

echo mq-deadline >/sys/block/sdx具体盘名称/queue/scheduler

4、永久调整磁盘IO调度算法
a.kylin操作系统

方法一:可对单个磁盘进行调整,如磁盘设备号发生变化需即使调整/etc/rc.d/rc.local对应磁盘号内容
vi /etc/rc.d/rc.local
加入以下内容
echo mq-deadline >/sys/block/sdx具体盘名称/queue/scheduler
退出保存(:wq!)后重启操作系统(reboot)
方法二:对所有磁盘进行调整,即使因磁盘增减导致设备号发生变化也不影响
vi /lib/udev/rules.d/60-block-scheduler.rules
将双引号中的算法替换为mq-deadline
退出保存(:wq!)后重启操作系统(reboot)

b.suse操作系统

方法一:可对单个磁盘进行调整
vi /etc/init.d/after.local
添加以下内容
echo noop > /sys/block/sdx具体盘名称/queue/scheduler
退出保存(:wq!)后重启操作系统(reboot)
方法二:对所有磁盘进行调整
修改grub配置文件
vi /etc/default/grub
在GRUB_CMDLINE_DEFAULT=最后加上要使用的算法
GRUB_CMDLINE_DEFAULT="...省略...,high elevator=noop"
退出保存(:wq!)
grub2-mkconfig -o /boot/grub2/grub.cfg
重启操作系统(reboot)

详细解释

背景

数据库测试中通过查看报表发现日志落盘等待时间异常久,单独对磁盘读写性能测试发现磁盘类型(SSD)及读写速率均正常,考虑到物理机未设置操作系统的相关参数,逐步排查发现磁盘调度算法为kylin v10默认的bfq算法,调整磁盘算法为noop/mq-deadline后,数据库性能测试结果大幅提高。

kylin几种调度算法及适用场景

bfq(suse对应为cfq)

cfq(completely fair queuing),全公平调度算法, 简单来说根据不同优先级(比如IO优先级)给所有同步进程分配不同的队列长度和时间片,CFQ均匀地分布对IO带宽的访问,在调度器分配给进程的时间片内,进程可以将其读写请求发送给底层块设备,当进程的时间片消耗完,进程的请求队列将被挂起,等待调度。
特点: 这种算法不按照先来后到的顺序;确保单个任务永远不会使用IO带宽;侧重于提供最低的延迟,而不是最大的吞吐量
适用场景: 适用于有大量进程的多用户系统,适合于桌面系统和交互式多任务及多媒体应用。

mq-deadline(suse对应为deasline)

DEADLINE算法(截止时间调度): 分别为读I/O和写I/O提供不同的FIFO队列,将请求排序为读或写批量处理,读FIFO队列的最大等待时间是500ms,写FIFO队列的最大等待时间是5s。deadline会把提交时间相近的请求放在一批。在同一批中,请求会被排序。当一批请求达到了大小上限或着定时器超时,这批请求就会提交到设备队列上去。(mq-deadline)按照逻辑块寻址(LBA)递增顺序安排他们的执行,读批处理优先于写批处理,因为应用程序更有节能阻塞读IO操作
特点: 在CFQ的基础上,deadline确保请求在一个用户可配置的时间内得到响应,避免请求饿死。
适用场景: 大多数场景,尤其是读操作比写操作频繁的情况,IO任务比较重的web、数据库服务器。

kyber

适用场景: 虚拟机、快速设备

none(suse 对应为noop)

NOOP, No Operation. 什么都不做,请求来一个处理一个,实现先进先出掉队算法
适用场景: SSD固态硬盘

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值