IO调度算法的简单学习与整理
IO调度算法的简单学习与整理
前言
前几天整理了 /sys/block/sda/queue/nr_requests
以及 /sys/block/sda/device/queue_depth 的两个参数
# 没别的意思 我就是再背一遍,怕自己记性不好记不住.
其实队列数量和队列参数之外还有一些调度算法.
所以今天想继续研究一下IO的调度算法.
当然了一样还是学习使用chatGPT
但是发现好多结果都是在瞎扯, 需要使用者有一定的基础知识,不然就被蒙蔽了.
chatgpt的一些结果
NOOP、CFQ(Cooperative Fair Queuing)、Deadline 和 C-Deadline 等是常见的硬盘 IO 调度算法,其中 NOOP、Deadline 和 C-Deadline 都属于简单的调度算法。这里具体解释三种调度算法:
NOOP 调度算法
NOOP 是 Linux 操作系统默认的 I/O 调度算法。它非常简单,不会改变请求队列中的顺序,只是按照到达先后依次处理请求。NOOP 调度算法适用于具有较快的硬盘传输速度的 IO 请求,因为它不需要任何调度操作,且没有额外的 CPU 开销。
Deadline 调度算法
Deadline 调度算法是一个混合算法,可以避免读取和写入请求之间的互相等待。请求先被排序,然后根据请求的读取时间和写入时间来排列和处理请求。如果到达了读取时间点,则进行读取操作。如果到达了写入时间点,则进行写入操作。如果都到达了就先处理到达时间较早的请求,以保证公平性。
Deadline 调度算法适用于同时具有读取和写入请求的应用程序,因为它可以让等待时间最久的请求成为下一个处理的请求,从而避免延迟时间过长。
C-Deadline 调度算法
C-Deadline 调度算法是在 Deadline 调度算法的基础上进行改进得到的。它引入了数据分类的概念,让读取请求和写入请求在不同的数据分类中,从而避免了读取和写入请求之间的互相等待。同时,它也遵循 Deadline 的优先级规则,当同时到达读取和写入请求时,总是先处理到达时间较早的请求。
C-Deadline 调度算法适用于高 I/O 并发的应用程序,具有快速的响应速度,可以有效地平衡读取和写入请求,同时保障高容量和高吞吐率的数据传输。
修改参数的方法
在 Linux 中,可以通过以下两种方式修改磁盘 IO 调度算法:
1. 修改内核参数
修改内核参数可以直接影响系统所使用的默认 IO 调度算法。用户可以通过编辑 `/etc/default/grub` 或 `/boot/grub2/grub.cfg` 文件,将 `elevator` 参数的值更改为想要使用的 IO 调度算法的名称,例如:
GRUB_CMDLINE_LINUX="elevator=deadline"
这样就将默认的 CFQ IO 调度算法更改为 Deadline 调度算法。注意,在修改完这个参数后,需要重启系统才能生效。
2. 使用 Sysfs
Sysfs 是一个内核文件系统,它提供了一种访问内核参数的方法。在使用 Sysfs 调整 IO 调度算法时,可以修改 `/sys/block/设备名/queue/scheduler` 文件。例如,使用以下命令将 sda 硬盘设备的默认 IO 调度算法更改为 Deadline 算法:
echo deadline > /sys/block/sda/queue/scheduler
同样需要注意,这个操作是直接修改内核参数而不引起永久性变化,一旦系统重启,操作将会失效。
总之,这些方法可以帮助用户选择合适的 IO 调度算法,以适应特定硬件设备和应用程序的需要,从而提高系统的 I/O 性能和结构效率。
修改说明
建议修改 sys 文件系统 而不是修改grub .
grub 是全局生效.
但是 sys 文件系统应该是针对不同文件系统来生效
需要注意: 方括号里面的是当前选定的调度策略
记录如下:
[root@testsvr116 init.d]# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq
[root@testsvr116 init.d]# echo noop > /sys/block/sda/queue/scheduler
[root@testsvr116 init.d]# cat /sys/block/sda/queue/scheduler
[noop] deadline cfq
[root@testsvr116 init.d]#
IO调度算法的简单学习与整理的更多相关文章
- iOS 开发学习资料整理(持续更新)
“如果说我看得比别人远些,那是因为我站在巨人们的肩膀上.” ---牛顿 iOS及Mac开源项目和学习资料[超级全面] http://www.kancloud.cn/digest/ios-mac ...
- iOS 学习资料整理
iOS学习资料整理 https://github.com/NunchakusHuang/trip-to-iOS 很好的个人博客 http://www.cnblogs.com/ygm900/ 开发笔记 ...
- Deep Learning(深度学习)学习笔记整理系列之(五)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(七)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(六)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(四)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(三)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- IO调度算法的理解(转载)
IO调度器(IO Scheduler)是操作系统用来决定块设备上IO操作提交顺序的方法.存在的目的有两个,一是提高IO吞吐量,二是降低IO响应时间.然而IO吞吐量和IO响应时间往往是矛盾的,为了尽量平 ...
- 超全PHP学习资源整理:入门到进阶系列
PHP是少数几门在语言层面饱受诟病,但在实际开发和应用上却又让人无法撒手的语言之一.就好比路边摊小吃,一遍骂人家不卫生,一遍却又说:真香.所谓接地气,不外如此,大道理不说,PHP光是轮子多.市场占有率 ...
- 第二弹:超全Python学习资源整理(进阶系列)
造一个草原要一株三叶草加一只蜜蜂.一株三叶草,一只蜂,再加一个梦.要是蜜蜂少,光靠梦也行. - 狄金森 "成为编程大牛要一门好语言加一点点天分.一门好语言,一点点天分,再加一份坚持.要是天分 ...
随机推荐
- 2023-08-26:请用go语言编写。开心一下的智力题: 有一个村庄,一共250人, 每一个村民要么一定说谎,要么只说真话, 村里有A、B、C、D四个球队,且每个村民只会喜欢其中的一支球队, 但是说
2023-08-26:请用go语言编写.开心一下的智力题: 有一个村庄,一共250人, 每一个村民要么一定说谎,要么只说真话, 村里有A.B.C.D四个球队,且每个村民只会喜欢其中的一支球队, 但是说 ...
- GitHub星标1k+的C#/.NET/.NET Core学习、工作、面试指南(让现在的自己不再迷茫✨)
缘起 概述:发现现如今网上关于Java.前端.Android.Golang...等相关技术的学习资料,面试指南一搜都是一大把,但是我们大.NET/C#的相关学习资料,面试指南和一些常见的面试题都是寥寥 ...
- linux中创建用户组
1.打开终端并以 root 用户身份登录到 Linux 系统. 2.运行以下命令以创建一个用户组: sudo groupadd group_name 将 "group_name" ...
- 大地经纬度坐标系与Web墨卡托坐标系的转换
目录 1. 概述 2. 实现 3. 参考 1. 概述 我在<大地经纬度坐标与地心地固坐标的的转换>这篇文章中已经论述了大地坐标系/地理坐标系的概念,简单来说就是由经度.纬度以及高程(BLH ...
- GaussDB(DWS)迁移:一种执行高效的TereData的marco迁移方案
摘要:提供一种执行高效的TereData的marco迁移方案. 本文分享自华为云社区<GaussDB(DWS)迁移 - teredata兼容 -- macro兼容 # [玩转PB级数仓Gauss ...
- 打破“双十定律”,华为云AI推动超级抗菌药Drug X研发加速
摘要:学科交叉已经逐渐变成了科技创新的一个主要源泉,成为这个科学时代一个不可替代的研究范式.在科技与技术合力赋能之下,中国科研人创新奋斗再出新成果,人类与病菌的博弈因此有了新武器. 本文分享自华为云社 ...
- hadoop清空回收站命令
直接删除目录(不放入回收站) hdfs dfs -rm -skipTrash /tmp/aaa 清空回收站 hdfs dfs -expunge 执行完命令后,回收站的数据会在一分钟后清除.
- OpenSSL 升级、回滚
ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with ...
- MongoDB 副本模式,会映射到本地 127.0.0.1 错误
基于 MongoDB 读写分离--Windows MongoDB 副本集配置 ,里面配置了一个坑,导致出现下列错误 [2021-05-10 10:06:11.981] [cluster-Cluster ...
- SQL Server 锁表
select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran ...