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

编程入门 行业动态 更新时间:2024-10-07 14:26:55

linux操作系统SSD<a href=https://www.elefans.com/category/jswz/34/1767753.html style=磁盘IO调度算法及配置方法[特指kylin、suse]"/>

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固态硬盘

更多推荐

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

本文发布于:2024-03-23 19:44:48,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1742077.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:磁盘   算法   操作系统   方法   linux

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!