文件系统学习7——文件系统队列机制概述

本文详细介绍了Linux文件系统的队列机制,从早期的单队列机制到多队列机制的发展。多队列机制通过为每个CPU核心配置请求队列,减少了锁竞争,提高了并发效率,尤其在处理多通道硬件如SSD时表现更优。文中还提到了软硬件队列的绑定策略,并对比了单队列和多队列的性能测试结果,显示多队列机制能显著提升性能。
摘要由CSDN通过智能技术生成

前面几小节讲述linux文件系统是如何操作IO流的,本小节讲述文件系统的队列机制,主要集中在IO调度器这一层的队列调度上。

1、队列机制

linux中的队列机制主要发生在IO调度器这一层,首先给出IO调度器在整个IO栈的位置,如下图所示。它位于bio块层之下,硬件驱动层之上。pagecache刷新下来的数据会合成对应的bio,同一个任务的多个bio会下发到块层,进行IO调度。
在这里插入图片描述
在早期的linux系统中,抽象块层的IO调度由于底层硬件只支持单队列处理模式,因此均采用的是左图的单队列IO调度,只是内部的调度方法有所不同。但由于底层存储介质的不断更新,特别是SSD的出现,多硬件队列已经极为普遍,因此linux3.13之后,内核加入了新的队列机制,称为多队列机制,其主要思想是为每个核配置一个请求队列,从而均衡多核之间的负载,并减少对请求队列的锁竞争。

多队列机制应用的相关paper:http://kernel.dk/blk-mq.pdf

2、传统单队列机制

对于传统的硬件设备,由于一般是处理单通道,因此linux将此硬件实例化为一个请求队列,所有应用程序发送的IO请求将全部提交至该队列中,然后交由该队列进行相应的处理,例如合并,调度等。

问题:当不同的任务并发的执行&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值