[发明专利]一种IO调度方法及装置有效
申请号: | 201510927651.X | 申请日: | 2015-12-14 |
公开(公告)号: | CN105549910B | 公开(公告)日: | 2018-09-07 |
发明(设计)人: | 张月辉 | 申请(专利权)人: | 浪潮(北京)电子信息产业有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 100085 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 io 调度 方法 装置 | ||
本发明公开了一种IO调度方法及装置,其中,该方法包括:获取每个IO队列的量化距离,其中,任一IO队列的量化距离为对该IO队列中每个IO请求对应的起始磁盘位置和当前磁头位置之间的距离进行计算得到的;利用每个所述IO队列的量化距离及预先设定的每个所述IO队列的原始优先级,计算每个所述IO队列的优化优先级;按照所述优化优先级对所述IO队列进行轮询调度。由此,不仅能够达到IO队列的公平轮询,还能够减少磁头移动幅度,进一步减少磁盘寻道时间,从而有效提高了磁盘的IO吞吐率。
技术领域
本发明涉及数据存储技术领域,更具体地说,涉及一种IO调度方法及装置。
背景技术
CFQ(Completely Fair Queuing,完全公平的排队)算法是Linux系统的默认IO调度算法,对于通用服务器来说通常是最好的选择。
其中,CFQ算法的主要目标是在触发IO(Input/Output,输入/输出)请求的所有进程中确保磁盘IO带宽的公平分配,具体来说,CFQ算法使用多个排序队列,任一排序队列存放对应于一个进程发出的IO请求,当利用CFQ算法处理一个IO请求时,内核调用一个散列函数确定当前进程的线程组标识符;然后,将一个新的IO请求插入与处理的IO请求对应的队列末尾。CFQ算法的本质为采用轮询方式扫描排序队列,依据每个排序队列的优先级选择第一个非空队列,依次调度不同队列中特定个数(公平)的IO请求。但是发明人发现,现有技术中提供的上述技术方案仅仅考虑到IO队列的优先级,但是并没有充分考虑到磁盘的寻道情况,因此,利用上述方式选取排序队列所达到的磁盘IO吞吐率较低。
综上所述,现有技术中利用CFQ算法选取排序队列时存在磁盘IO吞吐率较低的问题。
发明内容
本发明的目的是提供一种IO调度方法及装置,以解决现有技术利用CFQ算法选取排序队列时存在的磁盘IO吞吐率较低的问题。
为了实现上述目的,本发明提供如下技术方案:
一种IO调度方法,包括:
获取每个IO队列的量化距离,其中,任一IO队列的量化距离为对该IO队列中每个IO请求对应的起始磁盘位置和当前磁头位置之间的距离进行计算得到的;
利用每个所述IO队列的量化距离及预先设定的每个所述IO队列的原始优先级,计算每个所述IO队列的优化优先级;
按照所述优化优先级对所述IO队列进行轮询调度。
优选的,还包括:
利用每个所述IO队列的量化距离及优化优先级计算每个所述IO队列的处理时间片。
优选的,利用每个所述IO队列的量化距离及优化优先级计算每个所述IO队列的处理时间片,包括:
按照每个所述IO队列的量化距离与该IO队列的处理时间片成反比,优化优先级与该IO队列的处理时间片成正比的原则确定每个所述IO队列的处理时间片。
优选的,利用每个所述IO队列的量化距离及预先设定的每个所述IO队列的原始优先级,计算每个所述IO队列的优化优先级,包括:
按照每个所述IO队列的量化距离与该IO队列的优化优先级成反比,原始优先级与该IO队列的优化优先级成正比的原则确定每个所述IO队列的优化优先级。
优选的,获取每个所述IO队列的量化距离,包括:
获取任意所述IO队列中每个IO请求对应的起始磁盘位置与当前磁头位置的距离的平均值为该IO队列的量化距离。
优选的,获取每个所述IO队列的量化距离之前,还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮(北京)电子信息产业有限公司,未经浪潮(北京)电子信息产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510927651.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:NVRAM的数据传输方法和装置
- 下一篇:RAID磁盘阵列重新恢复冗余的方法