【开源技术随笔】008 - 如何修改Kernel IOSCHED 内核I/O 调度算法

9 篇文章

已下架不支持订阅

本文介绍了如何修改Linux内核的I/O调度算法,包括查看当前磁盘调度算法、修改内核Config支持BFQ调度器以及动态切换调度算法。还对比了EXT4文件系统中mq-deadline、kyber、bfq三种调度算法的性能,并提供了测试方法。

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



还有一个影响磁盘 I/O 读写性能的因素就是 I/O 调度算法。

Linux内核提供了多个I/O调度算法,用于管理和调度块设备的I/O请求,常见的I/O调度算法如下:

  1. IOSCHED_DEADLINE(截止时间调度器):
    DEADLINE调度器旨在尽量减少每个I/O请求的完成时间。
    它为每个请求分配一个截止时间,并优先处理截止时间早的请求。
    DEADLINE调度器维护两个队列,一个是按照截止时间排序的读队列,另一个是按照截止时间排序的写队列。
    在处理请求时,DEADLINE会首先检查读队列中是否有已经超过截止时间的请求,如果有,就会立即处理这些请求;
    如果没有,它会检查写队列中是否有超过截止时间的请求,如果有,就会处理这些请求;
    如果两个队列中都没有超过截止时间的请求,它就会处理读队列中的第一个请求。
    这种设计可以保证读请求优先于写请求,因为读请求通常对延迟更敏感。

  2. MQ_DEADLINE(多队列截止时间调度算法):
    MQ_DEADLINE调度器是对DEADLINE调度器的改进,它采用多队列的设计,可以在多核处理器上并行处理I/O请求。

已下架不支持订阅

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小馋喵星人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值