【技术实现步骤摘要】
一种提升通用块层I/O请求合并的方法、系统及介质
[0001]本专利技术涉及操作系统领域的I/O优化技术,具体涉及一种提升通用块层I/O请求合并的方法、系统及介质。
技术介绍
[0002]当前,开源软件在世界范围内影响力日益增强,Linux操作系统在整个操作系统市场格局中占据了越来越多的市场份额,已经形成了大规模市场应用的局面。近年来,一直保持着快速的增长率,尤其在政府、金融、农业、交通、电信等国家关键领域,Linux已经成为服务器操作系统领域中的中坚力量。
[0003]I/O子系统是Linux内核的核心子系统之一。通用块层作为I/O子系统的核心组成部分,对上承接文件系统,对下连接存储设备驱动,所有文件操作I/O请求都会经过通用块层的处理。因此,通用块层对I/O请求的处理效率直接关系到系统文件的读写效率,关系到上层业务系统指标以及用户的使用体验。
[0004]为了提升I/O请求的处理效率,通用块层会对I/O请求采取一系列操作,以此来提升整个I/O资源的带宽以及降低I/O访问的延迟,其中包括对I/O请求进行合并 ...
【技术保护点】
【技术特征摘要】
1.一种提升通用块层I/O请求合并的方法,其特征在于,包括:S101,针对进入通用块层的I/O请求,依据该I/O请求的LBA地址建立哈希值,并使用哈希值作为键值索引调度队列的哈希链表寻找可前向合并的I/O请求,若找到可前向合并的I/O请求,则跳转步骤S102;否则,将该I/O请求添加到哈希链表中,结束;S102,将该I/O请求、找到的可前向合并的I/O请求执行向前合并操作,并将找到的可前向合并的I/O请求从哈希链表中删除、将向前合并操作后得到的新的I/O请求添加到哈希链表中。2.根据权利要求1所述的提升通用块层I/O请求合并的方法,其特征在于,步骤S102中将该I/O请求、找到的可前向合并的I/O请求执行向前合并操作之前,还包括分别读取该I/O请求、找到的可前向合并的I/O请求以及对应的调度队列的允许合并标识,若任意一个允许合并标识为不允许合并,则终止执行向前合并操作。3.根据权利要求2所述的提升通用块层I/O请求合并的方法,其特征在于,步骤S102中将该I/O请求、找到的可前向合并的I/O请求执行向前合并操作之前,还包括判断该I/O请求、找到的可前向合并的I/O请求两者的数据访问方向是否相同,若两者的数据访问方向不同,则终止执行向前合并操作。4.根据权利要求3所述的提升通用块层I/O请求合并的方法,其特征在于,步骤S102中将该I/O请求、找到的可前向合并的I/O请求执行向前合并操作之前,还包括判断该I/O请求、找到的可前向合并的I/O请求两者的LBA地址是否连续,若两者的LBA地址不连续,则终止执行向前合并操作。5.根据权利要求1所述的提升通用块层I/O请求合并的方法,其特征在于,步骤S102包括:S201...
【专利技术属性】
技术研发人员:刘正元,刘云,胡海,肖林逵,张铎,
申请(专利权)人:麒麟软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。