[发明专利]一种通过软硬件协同支持读写性能隔离的I/O调度器有效
申请号: | 201810825619.4 | 申请日: | 2018-07-25 |
公开(公告)号: | CN109213583B | 公开(公告)日: | 2022-03-29 |
发明(设计)人: | 查礼;王一帆;张星洲;查斌;刘峥;程学旗 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/54 |
代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 祁建国;梁挥 |
地址: | 100080 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种基于Linux内核技术通过软硬件协同支持读写性能隔离的I/O调度器,该I/O调度器是在Linux内核的现有I/O调度器中增加了四个单元,即包括有队列分配单元(10)、优先级设置单元(20)、队列延迟时间对比单元(30)和队列深度调节单元(40),同时将Linux内核现有的I/O软件队列(50)和I/O硬件队列(60)中的I/O优先级进行对接;旨在不修改上层应用的前提下,降低应用业务混部带来的性能干扰,即最大程度的做到混部应用的资源隔离。采用本发明设计的I/O调度器处理后能够在数据处理系统中的在线读负载和批量写负载混部,即读写I/O混部的情况下,保持写I/O性能不变的同时,将读I/O的性能提升。 | ||
搜索关键词: | 一种 通过 软硬件 协同 支持 读写 性能 隔离 调度 | ||
【主权项】:
1.一种通过软硬件协同支持读写性能隔离的I/O调度器,其特征在于,包括:I/O调度器包括有队列分配单元(10)、优先级设置单元(20)、队列延迟时间对比单元(30)和队列深度调节单元(40);队列分配单元(10)中存在有队列包括有读请求队列(101)、同步写请求队列(102)和异步写请求队列(103);读请求队列(101)用于归类经读I/O请求单元(12)从数据处理系统中的在线读负载(11)请求得到的多个读请求read,则有,在所有观测周期OT={0,T,2T,…,(N‑1)T,NT}里采集到的读请求read采用集合形式表达为RQ={readT,read2T,…,readNT};同步写请求队列(102)用于归类经写I/O请求单元(22)从数据处理系统中的批量写负载(21)请求得到的多个同步写请求write,则有,在所有观测周期OT={0,T,2T,…,(N‑1)T,NT}里采集到的同步写请求write采用集合形式表达为WQ={writeT,write2T,…,writeNT};异步写请求队列(103)用于归类写I/O请求单元(22)从数据处理系统中的批量写负载(21)请求得到的多个异步写请求asynchronous_write,则有,在所有观测周期OT={0,T,2T,…,(N‑1)T,NT}里采集到的异步写请求asynchronous_write采用集合形式表达为:
观测时间集OT={0,T,2T,…,(N‑1)T,NT},T为第一个观测周期,2T为第二个观测周期,(N‑1)T为倒数最后一个观测周期,NT为最后一个观测周期,N为观测周期的总期数;readT表示在0至T时间段出现的第一组读请求;read2T表示在T至2T时间段出现的第二组读请求;readNT表示在(N‑1)T至NT时间段出现的最后一组读请求;writeT表示在0至T时间段出现的第一组同步写请求;write2T表示在T至2T时间段出现的第二组同步写请求;writeNT表示在(N‑1)T至NT时间段出现的最后一组同步写请求;asynchronous_writeT表示在0至T时间段出现的第一组异步写请求;asynchronous_write2T表示在T至2T时间段出现的第二组异步写请求;asynchronous_writeNT表示在(N‑1)T至NT时间段出现的最后一组异步写请求;优先级设置单元(20)用于对队列分配单元(10)中的多个请求队列进行优先级的设置;队列延迟时间对比单元(30)先进行读请求的时间比对,然后进行同步写请求的时间比对,进而是异步写请求的时间比对,最后将比对后的各自服务质量输出给队列深度调节单元(40);队列延迟时间对比单元(30)输出的服务质量有
和
有
和
有![]()
和![]()
为设置在0至T时间段里所述readT的服务质量;
为设置在T至2T时间段里所述read2T的服务质量;
为设置在(N‑1)T至NT时间段里所述readNT的服务质量;
为设置在0至T时间段里所述writeT的服务质量;
为设置在T至2T时间段里所述write2T的服务质量;
为设置在(N‑1)T至NT时间段里所述writeNT的服务质量;
为设置在0至T时间段里所述asynchronous_writeT的服务质量;
为设置在T至2T时间段里所述asynchronous_write2T的服务质量;
为设置在(N‑1)T至NT时间段里所述asynchronous_writeNT的服务质量;队列深度调节单元(40)在观测时间集OT={0,T,2T,…,(N‑1)T,NT}中同一个观测周期进行循环调节;步骤A,在观测周期T时刻里,队列深度调节单元(40)接收队列延迟时间对比单元(30)输出的服务质量
和
然后执行步骤B;步骤B,对
的取值进行判断,若
则执行步骤C;若
则执行步骤D;步骤C,将读队列深度
调整为
将同步写队列深度
调整为
将异步写队列深度
调整为
然后输出至I/O软件队列50;
为读请求队列集RQ的初始读队列深度;
为同步写请求队列WQ的初始读队列深度;
为异步写请求队列AWQ的初始读队列深度;步骤D,将读队列深度
保持为
即
然后执行步骤E;步骤E,对
的取值进行判断,若
则执行步骤F;若
则执行步骤G;步骤F,将同步写队列深度
调整为
然后执行步骤H;步骤G,将同步写队列深度
保持为
即
然后执行步骤H;步骤H,对
的取值进行判断,若
则执行步骤I;若
则执行步骤J;步骤I,将异步写队列深度
调整为
输出至I/O软件队列50;步骤J,将异步写队列深度
保持为
即
输出至I/O软件队列50;I/O软件队列(50),经队列深度调节单元(40)调整后的RQ、WQ和AWQ中的每个请求根据自身的优先级信息进入到对应的I/O软件队列(50)中,其中RQ进入Real‑time优先级的软件队列,WQ和AWQ进入Idle优先级的软件队列;I/O硬件队列(60),将I/O软件队列(50)中的优先级与I/O硬件队列(60)的优先级进行映射,则Real‑time优先级的软件队列会和Urgent优先级的硬件队列对接,则RQ队列中的I/O请求最终会进入到Urgent优先级的硬件队列中;而Idle优先级的软件队列会和Low优先级的硬件队列对接,则WQ和AWQ队列中的I/O请求最终会进入到Low优先级的硬件队列中;存储设备(70)通过WRR的方式扫描各硬件队列获取并处理I/O请求,则读I/O请求在Urgent队列会优先被处理,写I/O则会被放缓处理,由此在硬件层面降低了写I/O对读I/O的干扰。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810825619.4/,转载请声明来源钻瓜专利网。