【技术实现步骤摘要】
本专利技术涉及计算机
,尤其涉及一种磁盘输入/输出(input/output,I/O)调度方法和装置。
技术介绍
目前,客户端的操作系统在接收到各应用或软件所发送的I/O操作请求时,对I/O操作请求的调度方法主要有两种:无操作算法(no operation,NOOP)和完全公平队列算法(completely fair queuing,CFQ)。NOOP算法中,操作系统接收到I/O操作请求时,将I/O操作请求插入内核层的调度队列的开头或末尾,调度队列中下一个要处理的I/O操作请求总是调度队列中的第一个请求;CFQ算法将I/O操作请求按进程类型插入内核层的各个进程队列中,操作系统的内核层依次从各个进程队列中调取特定个数的请求插入内核层的调度队列中,进行处理。然而,现有技术中,上述两种调度方法主要是由内核层来实现对I/O操作请求的调度,而内核层的实现固定,实现策略单一,难以针对I/O操作请求设置优先级策略或者流量控制策略等,难以满足特定场景下对读写延时和带宽等的控制需求。
技术实现思路
本专利技术提供一种磁盘I/O调度方法和装置,用于解决现有技术中调度方法难以满足特定场景下对读写延时和带宽等的控制需求的问题。本专利技术的第一个方面是提供一种磁盘I/O调度方法,包括:接收与磁盘通过I/O接口连接的设备发送的I/O操作请求,所述I/O操作请求中携带:I/O操作的读写类型和业务种类;根据所述I/O操作请求中所述I/O操作的业务种类将所述I/O操作请求插入至应用层的对应业务队列中;判断所述I/O操作请求的处理状态是否满足预设的业务队列调度触发条件;若满足,将各业务队 ...
【技术保护点】
一种磁盘I/O调度方法,其特征在于,包括:接收与磁盘通过I/O接口连接的设备发送的I/O操作请求,所述I/O操作请求中携带:I/O操作的读写类型和业务种类;根据所述I/O操作请求中所述I/O操作的业务种类将所述I/O操作请求插入至应用层的对应业务队列中;判断所述I/O操作请求的处理状态是否满足预设的业务队列调度触发条件;若满足,将各业务队列中的所述I/O操作请求依据所述I/O操作的读写类型插入至应用层的读队列或写队列中;将所述读队列和所述写队列中的所述I/O操作请求插入至内核层的调度队列中,以便根据所述调度队列中的所述I/O操作请求对磁盘进行操作。
【技术特征摘要】
1.一种磁盘I/O调度方法,其特征在于,包括:接收与磁盘通过I/O接口连接的设备发送的I/O操作请求,所述I/O操作请求中携带:I/O操作的读写类型和业务种类;根据所述I/O操作请求中所述I/O操作的业务种类将所述I/O操作请求插入至应用层的对应业务队列中;判断所述I/O操作请求的处理状态是否满足预设的业务队列调度触发条件;若满足,将各业务队列中的所述I/O操作请求依据所述I/O操作的读写类型插入至应用层的读队列或写队列中;将所述读队列和所述写队列中的所述I/O操作请求插入至内核层的调度队列中,以便根据所述调度队列中的所述I/O操作请求对磁盘进行操作。2.根据权利要求1所述的方法,其特征在于,所述应用层的业务队列按照包含的I/O操作的业务种类分为实时的业务队列和非实时的业务队列;所述预设的业务队列调度触发条件包括:所述I/O操作请求插入至所述实时的业务队列中,预设的定时器周期到期,以及处理完上一个I/O操作请求。3.根据权利要求1所述的方法,其特征在于,所述I/O操作请求中还携带:起始地址偏移和长度信息;所述将所述读队列和所述写队列中的所述I/O操作请求插入至内核层的调度队列中,以便根据所述调度队列中的所述I/O操作请求对磁盘进行操作之前,还包括:根据所述I/O操作的起始地址偏移,对所述读队列和/或所述写队列中的所述I/O操作请求进行排序;判断排序结果中的相邻的两个I/O操作请求中,排序在前的I/O操作请求的起始偏移地址与对应的长度的和是否等于排序在后的I/O操作请求的起始地址偏移;若等于,则将所述相邻的两个I/O操作请求合并为一个I/O操作请求。4.根据权利要求1所述的方法,其特征在于,所述判断所述I/O操作请求的处理状态是否满足预设的业务队列调度触发条件;若满足,将各业务队列中的所述I/O操作请求依据所述I/O操作的读写类型插入至应用层的读队列
\t或写队列中,包括:判断所述I/O操作请求的处理状态是否满足预设的业务队列调度触发条件;若所述I/O操作请求的处理状态满足预设的业务队列调度触发条件,则按照各业务队列的优先级的从高到低顺序,依次将各业务队列中的I/O操作请求依据所述I/O操作的读写类型,插入至应用层的读队列或写队列中,直至读队列和写队列满为止。5.根据权利要求1或2所述的方法,其特征在于,将所述读队列和所述写队列中的所述I/O操作请求插入至内核层的调度队列中,包括:按照预设的读写比例,从所述读队列中选取第一组I/O操作请求,从所述写队列中选取第二组I/O操作请求,将所述第一组I/O操作请求和所述第二组I/O操作请求插入至内核层的调度队列中,所述第一组I/O操作请求中I/O操作请求的个数与所述第二组I/O操作请求中I/O操作请求的个数的比例满足所述读写比例。6.根据权利要求1或2所述的方法,其特征在于,将所述读队列和所述写队列中的所述I/O操作请求插入至内核层的调度队列中,包括:将所述读队列中的所述I/O操作请求插入至所述调度队列中,并对从所述读队列插入至所述调度队列中的所述I/O操作请求进行计数,得到第一计数值,在所述第一计数值超过第一预设数值时,停止插入所述读队列中的所述I/O操作请求;将所述写队列中的所述I/O操作请求插入至所述调度队列中,并对从所述写队列插入至所述调度队列中的所述I/O操作请求进行计数,得到第二计数值,在所述第二计数值超过第二预设数值时,停止插入所述写队列中的所述I/O操作请求。7.根据权利要求1所述的方法,其特征在于,所述调度队列为异步I/O队列。8.一种磁盘I/O调度装置,其特征在于,包括:接收模块,用于接收与磁盘通过I/O接口连接的设备发送的I\...
【专利技术属性】
技术研发人员:肖芬,李雅卿,颜克洲,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。