[发明专利]一种CPU多核的IO请求处理方法、装置及设备有效
申请号: | 201710827522.2 | 申请日: | 2017-09-14 |
公开(公告)号: | CN107526551B | 公开(公告)日: | 2020-03-31 |
发明(设计)人: | 张永锋;侯英利;姜怡坤;朱斌 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 cpu 多核 io 请求 处理 方法 装置 设备 | ||
本发明公开了一种CPU多核的IO请求处理方法,包括:启动N个IO处理线程,其中,N为正整数,且至少为2,每一个IO处理线程对应一个IO请求队列;针对每一个IO处理线程,当该IO处理线程对应的IO请求队列为空时,从公共IO请求队列中获取IO请求集合并进行处理;在处理完IO请求集合之后,确定该IO请求队列是否为空;如果否,则处理该IO请求队列中的IO请求;如果是,则执行从公共IO请求队列中获取IO请求集合并进行处理。应用本发明实施例提供的技术方案,多线程处理IO请求,利用CPU多核的性能提高了IO请求处理的性能。本发明还公开了一种IO请求处理装置、设备及存储介质,具有相应技术效果。
技术领域
本发明涉及计算机存储技术领域,特别是涉及一种CPU多核的IO请求处理方法、装置及设备。
背景技术
在存储系统中,采用单线程的处理方式来处理IO请求。随着存储技术的不断发展,单线程的处理方式在很多场合已经不能满足需求。
例如,在SAN(Storage Area Network,存储区域网络)存储系统中,常见的RAID(Redundant Arrays of Independent Disks,独立磁盘冗余阵列)阵列有传统RAID阵列和分布式RAID阵列。传统的RAID阵列最大支持16块磁盘,采用单线程来处理IO请求,CUP单核处理。由于底层IO通道只有16块盘,使用CPU单核处理读写磁盘的IO请求以及计算异或校验,可以将16块盘的带宽跑满。分布式RAID阵列的磁盘数量远远大于传统的RAID阵列,大量的磁盘能够提高IO并发性能,但是CUP单核的性能不能满足计算异或校验的需求,特别是随着分布式RAID阵列的不断发展,采用单线程处理IO请求,由于CPU单核,在计算异或检验阶段的性能瓶颈凸显的越来越明显。
综上所述,在处理IO请求时,CUP单核性能不足,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种CPU多核的IO请求处理方法、装置、设备及存储介质,提高了IO请求处理的性能。
为解决上述技术问题,本发明提供如下技术方案:
一种CPU多核的IO请求处理方法,该方法包括:
启动N个IO处理线程,其中,所述N为正整数,且至少为2,每一个IO处理线程对应一个IO请求队列;
针对每一个IO处理线程,当该IO处理线程对应的IO请求队列为空时,从公共IO请求队列中获取IO请求集合并进行处理;
在处理完所述IO请求集合之后,确定该IO请求队列是否为空;
如果否,则处理该IO请求队列中的IO请求;如果是,则执行所述从公共IO请求队列中获取IO请求集合并进行处理。
优选的,所述从公共IO请求队列中获取IO请求集合并进行处理,包括:
从公共IO请求队列中获取预定个数的IO请求;
确定获取的各个IO请求相对应的条带编号;
针对每一个IO请求,确定该IO请求的条带编号对于所述N的取模运算结果;
根据各个IO请求的取模运算结果,从公共IO请求队列中获取IO请求集合并进行处理。
优选的,在所述根据各个IO请求的取模运算结果,从公共IO请求队列中获取IO请求集合并进行处理之后,还包括:
针对从所述公共IO请求队列中获取的所述IO请求集合之外的其他每个IO请求,将该IO请求置入与该IO请求的取模运算结果相对应的IO请求队列中。
优选的,所述目标IO请求集合中仅包含一个IO请求。
优选的,所述N个所述IO处理线程为分布式RAID阵列中的线程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710827522.2/2.html,转载请声明来源钻瓜专利网。