I/O请求的处理方法和装置制造方法及图纸

技术编号:14563668 阅读:56 留言:0更新日期:2017-02-05 20:35
本发明专利技术实施例提供一种I/O请求的处理方法和装置,通过将CPU核划分为中断处理组和业务处理组,让中断固化在部分CPU核上处理,与处理业务I/O的CPU核分开,可以避免由于中断的突然到来导致业务I/O瞬时时延突然变大的问题,提升了系统的时延稳定性,进一步通过对业务处理组中的CPU核进行分组,建立LUN与CPU分组的映射关系,每个CPU组处理固定的LUN上的I/O请求,减少各个CPU核上的I/O对同一个LUN上的共享资源争用时的冲突,提升CPU缓存命中率和系统整体性能。

【技术实现步骤摘要】

本专利技术实施例涉及通信技术,尤其涉及一种输入/输出(Input/Output,简称I/O)请求的处理方法和装置。
技术介绍
全闪存阵列要求在一定的I/O压力下,提供稳定的时延,除了传统的基于并发的资源预留和流控策略,系统在设计上也要求规避各类干扰源引入的时延抖动,以改善时延的稳定性。现有技术中,所有中断分配在各个中央处理单元(CentralProcessingUnit,简称CPU)核上执行,会由于中断I/O的随机性和突发性而打断正在当前核上处理的业务I/O的执行,造成业务I/O瞬时时延变大,影响业务I/O的时延稳定性能。当各个核上的I/O对同一个共享资源进行访问时,会产生访问冲突,其他CPU核需要等待在前的CPU核访问完成才能进行访问,导致业务I/O的时延增大,CPU缓存命中率也会降低。
技术实现思路
本专利技术实施例提供一种I/O请求的处理方法和装置,减少各个CPU核上的I/O对同一个逻辑单元号(LogicalUnitNumber,简称LUN)上的共享资源争用时的冲突,提升CPU缓存命中率和系统整体性能。本专利技术第一方面提供一种I/O请求的处理方法,该I/O请求的处理方法包括:首先对系统中的N个CPU核进行划分,将M个CPU核划分到中断处理组,将N-M个CPU核划分到业务处理组,中断处理组中的CPU核用于处理中断I/O,业务处理组中的CPU核用于处理业务I/O,通过让中断固化在部分CPU核上处理,与处理业务I/O的CPU核分开,可以避免由于中断的突然到来导致业务I/O瞬时时延突然变大的问题,提升了系统的时延稳定性。进一步的根据系统中的LUN个数和业务处理组中的CPU核的个数,对业务处理组中的CPU核进行分组,分组后每个CPU分组包含至少一个CPU核,并建立LUN与CPU分组的映射关系。后续当接收到应用发送的业务I/O请求时,根据业务I/O请求中包括的访问地址确定业务I/O请求要访问的目标LUN,根据目标LUN以及LUN与CPU分组的映射关系,确定执行业务I/O请求的目标CPU分组,将业务I/O请求发送给目标CPU分组执行。通过对业务处理组中的CPU核进行分组,使得每个CPU组处理固定的LUN上的I/O请求,减少各个CPU核上的I/O对同一个LUN上的共享资源争用时的冲突,提升CPU缓存命中率和系统整体性能。在本专利技术第一方面的一种可能的实现方式,通过如下方式对业务处理组中的CPU核进行分组:首先确定CPU分组个数,为所述业务处理组中的CPU分组分配分组标识,然后将所述业务处理组中的CPU核分配给所述业务处理组中的CPU分组,将所述系统中的LUN平均分配给所述业务处理组中的每个CPU分组。其中,在确定CPU分组个数时,通过比较系统中的LUN个数和业务处理组中的CPU核的个数,当所述系统中的LUN个数小于所述业务处理组中的CPU核的个数时,确定CPU分组个数为所述系统中的LUN个数。相应的,记录所述业务处理组中的每个CPU分组的分组标识和LUN的标识的对应关系。在本专利技术第一方面的另一种可能的实现方式,通过如下方式对业务处理组中的CPU核进行分组:首先确定CPU分组个数,为所述业务处理组中的CPU分组分配分组标识,然后,将所述业务处理组中的CPU核平均分配给所述业务处理组中的每个CPU分组,将所述系统中的LUN分配给所述业务处理组中的每个CPU分组。其中,在确定CPU分组个数时,通过比较系统中的LUN个数和业务处理组中的CPU核的个数,当所述系统中的LUN个数大于所述业务处理组中的CPU核的个数时,确定CPU分组个数为所述业务处理组中的CPU核的个数。相应的,记录所述业务处理组中的每个CPU分组的分组标识和LUN的标识的对应关系。在本专利技术第一方面的一种可能的实现方式,所述方法还包括:根据中断的属性对所述中断处理组中的CPU核进行分组,所述中断处理组中的每个CPU分组用于对一种中断进行处理。在本专利技术第一方面的一种可能的实现方式,还可以对所述系统中的CPU分组包括的CPU核个数进行调整,具体的:统计所述业务处理组中的每个CPU分组的CPU利用率以及所述中断处理组中的每个CPU分组的CPU利用率,然后根据所述系统中的CPU分组的CPU利用率,对所述系统中的CPU分组包括的CPU核个数进行调整,所述系统中的CPU分组包括所述业务处理组中的CPU分组和所述中断处理组中的CPU分组,相应的更新所述LUN与CPU分组的映射关系。在本专利技术第一方面的一种可能的实现方式,可通过如下方式对CPU分组包括的CPU核个数进行调整:首先判断所述系统中的CPU分组的CPU利用率是否满足条件一和条件一中的任意一个,其中,所述条件一为:所述系统中的每个CPU分组的CPU利用率均大于第一阈值,所述条件二为:所述系统中的每个CPU分组的CPU利用率均小于第二阈值,所述第二阈值小于所述第一阈值。如果所述系统中的CPU分组的CPU利用率满足所述条件一和所述条件二中的任意一个,则不对所述系统中的CPU分组包括的CPU核个数进行调整,如果所述系统中的CPU分组的CPU利用率不满足所述条件一和所述条件二中的任意一个,则进一步判断所述系统的CPU分组中CPU利用率最大的CPU分组和CPU利用率最小的CPU分组的CPU利用率的差值是否大于第三阈值。如果所述CPU利用率的差值大于所述第三阈值,则确定对所述业务处理组中的CPU分组包括的CPU核个数进行调整,将所述CPU利用率最小的CPU分组中的一个CPU核分配给所述CPU利用率最大的CPU分组,如果所述CPU利用率的差值不大于所述第三阈值,则确定不对所述业务处理组中的CPU分组包括的CPU核个数进行调整。其中,所述第三阈值大于所述第二阈值,且小于所述第一阈值。在本专利技术第一方面的一种可能的实现方式,所述更新所述LUN与CPU分组的映射关系,具体为:判断所述CPU利用率最小的CPU分组中CPU核的个数是否为零,如果所述CPU利用率最小的CPU分组中CPU核的个数为零,则删除所述CPU利用率最小的CPU分组,并更新所述CPU利用率最大的CPU分组和LUN的对应关系,如果所述CPU利用率最小的CPU分组中CPU核的个数不为零,则分别更新所述CPU利用率最大的CPU分组和LUN的对应关系,以及所述CPU利用率最小的CPU分组和LUN的对应关系。本专利技术第二方面提供一种I/O请求的处理装置,所述I/O本文档来自技高网...

【技术保护点】
一种I/O请求的处理方法,其特征在于,包括:对系统中的N个中央处理单元CPU核进行划分,将M个CPU核划分到中断处理组,所述中断处理组中的CPU核用于处理中断输入/输出I/O,将N‑M个CPU核划分到业务处理组,所述业务处理组中的CPU核用于处理业务I/O,其中,M和N均为正整数,且M小于N;根据所述系统中的逻辑单元号LUN个数和所述业务处理组中的CPU核的个数,对所述业务处理组中的CPU核进行分组,每个CPU分组包含至少一个CPU核;建立LUN与CPU分组的映射关系;当接收到应用发送的业务I/O请求时,根据所述业务I/O请求中包括的访问地址确定所述业务I/O请求要访问的目标LUN;根据所述目标LUN以及LUN与CPU分组的映射关系,确定执行所述业务I/O请求的目标CPU分组;将所述业务I/O请求发送给所述目标CPU分组执行。

【技术特征摘要】
1.一种I/O请求的处理方法,其特征在于,包括:
对系统中的N个中央处理单元CPU核进行划分,将M个CPU核划分到中
断处理组,所述中断处理组中的CPU核用于处理中断输入/输出I/O,将N-M
个CPU核划分到业务处理组,所述业务处理组中的CPU核用于处理业务I/O,
其中,M和N均为正整数,且M小于N;
根据所述系统中的逻辑单元号LUN个数和所述业务处理组中的CPU核的
个数,对所述业务处理组中的CPU核进行分组,每个CPU分组包含至少一个
CPU核;
建立LUN与CPU分组的映射关系;
当接收到应用发送的业务I/O请求时,根据所述业务I/O请求中包括的
访问地址确定所述业务I/O请求要访问的目标LUN;
根据所述目标LUN以及LUN与CPU分组的映射关系,确定执行所述业务
I/O请求的目标CPU分组;
将所述业务I/O请求发送给所述目标CPU分组执行。
2.根据权利要求1所述的方法,其特征在于,所述根据所述系统中的
LUN个数和所述业务处理组中的CPU核的个数,对所述业务处理组中的CPU
核进行分组,包括:
当所述系统中的LUN个数小于所述业务处理组中的CPU核的个数时,确
定CPU分组个数为所述系统中的LUN个数,为所述业务处理组中的CPU分组
分配分组标识;
将所述业务处理组中的CPU核分配给所述业务处理组中的CPU分组;
将所述系统中的LUN平均分配给所述业务处理组中的每个CPU分组;
所述建立LUN与CPU分组的映射关系,包括:
记录所述业务处理组中的每个CPU分组的分组标识和LUN的标识的对应
关系。
3.根据权利要求1所述的方法,其特征在于,所述根据所述系统中的
LUN个数和所述业务处理组中的CPU核的个数,对所述业务处理组中的CPU
核进行分组,包括:
当所述系统中的LUN个数大于所述业务处理组中的CPU核的个数时,确

\t定CPU分组个数为所述业务处理组中的CPU核的个数,为所述业务处理组中
的CPU分组分配分组标识;
将所述业务处理组中的CPU核平均分配给所述业务处理组中的每个CPU
分组;
将所述系统中的LUN分配给所述业务处理组中的每个CPU分组;
所述建立LUN与CPU分组的映射关系,包括:
记录所述业务处理组中的每个CPU分组的分组标识和LUN的标识的对应
关系。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包
括:
根据中断的属性对所述中断处理组中的CPU核进行分组,所述中断处理
组中的每个CPU分组用于对一种中断进行处理。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
统计所述业务处理组中的每个CPU分组的CPU利用率以及所述中断处理
组中的每个CPU分组的CPU利用率;
根据所述系统中的CPU分组的CPU利用率,对所述系统中的CPU分组包
括的CPU核个数进行调整,所述系统中的CPU分组包括所述业务处理组中的
CPU分组和所述中断处理组中的CPU分组;
更新所述LUN与CPU分组的映射关系。
6.根据权利要求5所述的方法,其特征在于,所述根据所述系统中的
CPU分组的CPU利用率,对所述系统中的CPU分组包括的CPU核个数进行调
整,包括:
判断所述系统中的CPU分组的CPU利用率是否满足条件一和条件一中的
任意一个,其中,所述条件一为:所述系统中的每个CPU分组的CPU利用率
均大于第一阈值,所述条件二为:所述系统中的每个CPU分组的CPU利用率
均小于第二阈值,所述第二阈值小于所述第一阈值;
如果所述系统中的CPU分组的CPU利用率满足所述条件一和所述条件二
中的任意一个,则确定不对所述系统中的CPU分组包括的CPU核个数进行调
整;
如果所述系统中的CPU分组的CPU利用率不满足所述条件一和所述条件

\t二中的任意一个,则判断所述系统的CPU分组中CPU利用率最大的CPU分组
和CPU利用率最小的CPU分组的CPU利用率的差值是否大于第三阈值,所述
第三阈值大于所述第二阈值,且小于所述第一阈值;
如果所述CPU利用率的差值大于所述第三阈值,则确定对所述业务处理
组中的CPU分组包括的CPU核个数进行调整,将所述CPU利用率最小的CPU
分组中的一个CPU核分配给所述CPU利用率最大的CPU分组;
如果所述CPU利用率的差值不大于所述第三阈值,则确定不对所述业务
处理组中的CPU分组包括的CPU核个数进行调整。
7.根据权利要求6所述的方法,其特征在于,所述更新所述LUN与CPU
分组的映射关系,包括:
判断所述CPU利用率最小的CPU分组中CPU核的个数是否为零;
如果所述CPU利用率最小的CPU分组中CPU核的个数为零,则删除所述
CPU利用率最小的CPU分组,并更新所述CPU利用率最大的CPU分组和LUN
的对应关系;
如果所述CPU利用率最小的CPU分组中CPU核的个数不为零,则分别更
新所述CPU利用率...

【专利技术属性】
技术研发人员:刘霞
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1