【技术实现步骤摘要】
一种CPU多核的IO请求处理方法、装置及设备
本专利技术涉及计算机存储
,特别是涉及一种CPU多核的IO请求处理方法、装置及设备。
技术介绍
在存储系统中,采用单线程的处理方式来处理IO请求。随着存储技术的不断发展,单线程的处理方式在很多场合已经不能满足需求。例如,在SAN(StorageAreaNetwork,存储区域网络)存储系统中,常见的RAID(RedundantArraysofIndependentDisks,独立磁盘冗余阵列)阵列有传统RAID阵列和分布式RAID阵列。传统的RAID阵列最大支持16块磁盘,采用单线程来处理IO请求,CUP单核处理。由于底层IO通道只有16块盘,使用CPU单核处理读写磁盘的IO请求以及计算异或校验,可以将16块盘的带宽跑满。分布式RAID阵列的磁盘数量远远大于传统的RAID阵列,大量的磁盘能够提高IO并发性能,但是CUP单核的性能不能满足计算异或校验的需求,特别是随着分布式RAID阵列的不断发展,采用单线程处理IO请求,由于CPU单核,在计算异或检验阶段的性能瓶颈凸显的越来越明显。综上所述,在处理IO请求时,CUP ...
【技术保护点】
一种CPU多核的IO请求处理方法,其特征在于,包括:启动N个IO处理线程,其中,所述N为正整数,且至少为2,每一个IO处理线程对应一个IO请求队列;针对每一个IO处理线程,当该IO处理线程对应的IO请求队列为空时,从公共IO请求队列中获取IO请求集合并进行处理;在处理完所述IO请求集合之后,确定该IO请求队列是否为空;如果否,则处理该IO请求队列中的IO请求;如果是,则执行所述从公共IO请求队列中获取IO请求集合并进行处理。
【技术特征摘要】
1.一种CPU多核的IO请求处理方法,其特征在于,包括:启动N个IO处理线程,其中,所述N为正整数,且至少为2,每一个IO处理线程对应一个IO请求队列;针对每一个IO处理线程,当该IO处理线程对应的IO请求队列为空时,从公共IO请求队列中获取IO请求集合并进行处理;在处理完所述IO请求集合之后,确定该IO请求队列是否为空;如果否,则处理该IO请求队列中的IO请求;如果是,则执行所述从公共IO请求队列中获取IO请求集合并进行处理。2.根据权利要求1所述的方法,其特征在于,所述从公共IO请求队列中获取IO请求集合并进行处理,包括:从公共IO请求队列中获取预定个数的IO请求;确定获取的各个IO请求相对应的条带编号;针对每一个IO请求,确定该IO请求的条带编号对于所述N的取模运算结果;根据各个IO请求的取模运算结果,从公共IO请求队列中获取IO请求集合并进行处理。3.根据权利要求2所述的方法,其特征在于,在所述根据各个IO请求的取模运算结果,从公共IO请求队列中获取IO请求集合并进行处理之后,还包括:针对从所述公共IO请求队列中获取的所述IO请求集合之外的其他每个IO请求,将该IO请求置入与该IO请求的取模运算结果相对应的IO请求队列中。4.根据权利要求1至3任一项所述的方法,其特征在于,所述目标IO请求集合中仅包含一个IO请求。5.根据权利要求4所述的方法,其特征在于,所述N个所述IO处理线程为分布式RAID阵列中的线程。6.一种CPU多核的IO请求处理装置,其特征在于,包括:线程启动模块,用于启动N个IO处理线程,其中,所述N为正整数,且至少为2,每一个IO处理线程对应一个IO请求队列;公共IO请求处理模块,用于针对每一个IO处理线程,当该IO处理线程对应的IO请求队列为空时,从公共IO请求队列中获取IO请求集合并进行处理;队列IO请求确定模块,用于在处理完所述I...
【专利技术属性】
技术研发人员:张永锋,侯英利,姜怡坤,朱斌,
申请(专利权)人:郑州云海信息技术有限公司,
类型:发明
国别省市:河南,41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。