优先级调度算法实现_详解磁盘IO调度算法--CFQ、NOOP、Deadline、AS

本文介绍了Linux系统中的四种I/O调度算法:CFQ、NOOP、Deadline和AS。CFQ适用于多媒体应用和桌面系统,NOOP适合于闪存设备和嵌入式系统,Deadline对数据库环境友好,而AS则在写入较多的环境中表现出色。了解这些算法有助于优化系统的I/O性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

今天主要分享下磁盘IO调度算法,虽然对于我们平时只需要设置deadline就行了,不过了解下它的4种算法也还是不错的。


I/O 调度算法

I/O 调度算法在各个进程竞争磁盘I/O的时候担当了裁判的角色。他要求请求的次序和时机做最优化的处理,以求得尽可能最好的整体I/O性能。

f72da9ff59057fe2746bfebe9ec9167f.png

Linux 4.0 IO协议栈框架图

I/O调度程序的总结:

1)当向设备写入数据块或是从设备读出数据块时,请求都被安置在一个队列中等待完成.

2)每个块设备都有它自己的队列.

3)I/O调度程序负责维护这些队列的顺序,以更有效地利用介质.I/O调度程序将无序的I/O操作变为有序的I/O操作.

4)内核必须首先确定队列中一共有多少个请求,然后才开始进行调度.


I/O调度的4种算法

CFQ(完全公平排队I/O调度程序)

在最新的内核版本和发行版中,都选择CFQ做为默认的I/O调度器,对于通用的服务器也是最好的选择。CFQ对于多媒体应用(video,audio)和桌面系统是最好的选择。CFQ赋予I/O请求一个优先级,而I/O优先级请求独立于进程优先级,高优先级的进程的读写不能自动地继承高的I/O优先级。

对于很多IO压力较大的场景就并不是很适应,尤其是IO压力集中在某些进程上的场景。因为这种场景我们需要更多的满足某个或者某几个进程的IO响应速度,而不是让所有的进程公平的使用IO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值