一种I/O处理方法、系统、设备及计算机可读存储介质技术方案

技术编号:27600375 阅读:13 留言:0更新日期:2021-03-10 10:22
本申请公开了一种I/O处理方法、系统、设备及计算机介质,应用于存储系统的块层,确定存储系统中已用CPU核的可用资源量;获取待处理I/O;确定处理待处理I/O所需的CPU资源量;判断CPU资源量是否超出可用资源量;若CPU资源量超出可用资源量,则启用未使用的目标CPU核,基于目标CPU核生成目标软件上下文分发队列,将目标软件上下文分发队列映射至已有的硬件上下文分发队列,并在待处理I/O中选取目标I/O,分配目标I/O至目标软件上下文分发队列进行处理。本申请中,可以启用未使用的CPU核,并生成目标软件上下文分发队列来处理待处理I/O,可以提高待处理I/O的处理效率,避免存储系统中I/O阻塞。I/O阻塞。I/O阻塞。

【技术实现步骤摘要】
一种I/O处理方法、系统、设备及计算机可读存储介质


[0001]本申请涉及存储
,更具体地说,涉及一种I/O处理方法、系统、设备及计算机可读存储介质。

技术介绍

[0002]在存储系统中,用户发起读写操作时,并不是直接操作存储设备,而是需要经过较长的IO(Input/Output,输入/输出)栈才能完成数据的读写。读写操作大体上需依次经过虚拟文件系统(Virtual File Systems,vfs)、磁盘文件系统、block(块)层、设备驱动层,最后到达存储器件,器件处理完成后发送中断通知驱动程序。且在当前架构中,是为每个CPU(central processing unit,中央处理器)分配一个软件队列(soft context dispatch queue),又根据存储器的硬件队列(hardware queue)分配相同数量的硬件上下文分发队列(hard context dispatch queue),通过固定的映射关系,将1个或多个软件队列映射给到1个硬件队列,再将其与存储器的硬件队列对应起来。当某个I/O进程处理任务突然增加时,I/O就会堆积在相应的软件队列中,此时没有额外的CPU资源来处理增加的I/O,就会导致部分I/O超时,会严重影响整个系统的性能,成为性能瓶颈。
[0003]综上所述,如何提高存储系统处理I/O的效率是目前本领域技术人员亟待解决的问题。

技术实现思路

[0004]本申请的目的是提供一种I/O处理方法,其能在一定程度上解决如何提高存储系统处理I/O的效率的技术问题。本申请还提供了一种I/O处理系统、设备及计算机可读存储介质。
[0005]为了实现上述目的,本申请提供如下技术方案:
[0006]一种I/O处理方法,应用于存储系统的块层,包括:
[0007]确定所述存储系统中已用CPU核的可用资源量;
[0008]获取待处理I/O;
[0009]确定处理所述待处理I/O所需的CPU资源量;
[0010]判断所述CPU资源量是否超出所述可用资源量;
[0011]若所述CPU资源量超出所述可用资源量,则启用未使用的目标CPU核,基于所述目标CPU核生成目标软件上下文分发队列,将所述目标软件上下文分发队列映射至已有的硬件上下文分发队列,并在所述待处理I/O中选取目标I/O,分配所述目标I/O至所述目标软件上下文分发队列进行处理。
[0012]优选的,所述判断所述CPU资源量是否超出所述可用资源量之后,还包括:
[0013]若所述CPU资源量未超出所述可用资源量,则确定所述可用资源量与所述CPU资源量间的资源量差值,确定资源量与所述资源量差值相等的待关闭CPU核,并关闭所述待关闭CPU,删除所述待关闭CPU对应的已有软件上下文分发队列,取消所述已有软件上下文分发
队列与所述硬件上下文分发队列间的映射关系。
[0014]优选的,所述确定所述存储系统中已用CPU核的可用资源量,包括:
[0015]获取所述已用CPU核的性能配置信息;
[0016]基于所述性能配置信息确定所述已用CPU核的所述可用资源量。
[0017]优选的,所述获取所述已用CPU核的性能配置信息,包括:
[0018]通过所述存储系统的驱动层获取所述已用CPU核的所述性能配置信息。
[0019]优选的,所述启用未使用的目标CPU核,包括:
[0020]通过所述存储系统的驱动层发送启用指令至未使用的所述目标CPU,以启用所述目标CPU核。
[0021]优选的,所述启用未使用的目标CPU核之后,还包括:
[0022]更新所述目标CPU核的性能参数。
[0023]优选的,所述确定处理所述待处理I/O所需的CPU资源量,包括:
[0024]获取所述待处理I/O的目标因子,所述目标因子的类型包括带宽值、时延值、拥塞值;
[0025]基于所述目标因子确定所述CPU资源量。
[0026]一种I/O处理系统,应用于存储系统的块层,包括:
[0027]第一确定模块,用于确定所述存储系统中已用CPU核的可用资源量;
[0028]第一获取模块,用于获取待处理I/O;
[0029]第二确定模块,用于确定处理所述待处理I/O所需的CPU资源量;
[0030]第一判断模块,用于判断所述CPU资源是否超出所述可用资源量;若所述CPU资源量超出所述可用资源量,则启用未使用的目标CPU核,基于所述目标CPU核生成目标软件上下文分发队列,将所述目标软件上下文分发队列映射至已有的硬件上下文分发队列,并在所述待处理I/O中选取目标I/O,分配所述目标I/O至所述目标软件上下文分发队列进行处理。
[0031]一种I/O处理设备,包括:
[0032]存储器,用于存储计算机程序;
[0033]处理器,用于执行所述计算机程序时实现如上任一所述I/O处理方法的步骤。
[0034]一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述I/O处理方法的步骤。
[0035]本申请提供的一种I/O处理方法,应用于存储系统的块层,确定存储系统中已用CPU核的可用资源量;获取待处理I/O;确定处理待处理I/O所需的CPU资源量;判断CPU资源量是否超出可用资源量;若CPU资源量超出可用资源量,则启用未使用的目标CPU核,基于目标CPU核生成目标软件上下文分发队列,将目标软件上下文分发队列映射至已有的硬件上下文分发队列,并在待处理I/O中选取目标I/O,分配目标I/O至目标软件上下文分发队列进行处理。本申请中,存储系统的块层可以确定待处理I/O所需的CPU资源量,并在CPU资源量超出已用CPU核的可用资源量的情况下,可以启用未使用的CPU核,并生成目标软件上下文分发队列来处理待处理I/O,可以提高待处理I/O的处理效率,避免存储系统中I/O阻塞。本申请提供的一种I/O处理系统、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
[0036]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0037]图1为本申请实施例提供的一种I/O处理方法的流程图;
[0038]图2为本申请实施例提供的一种I/O处理方法的第二流程图;
[0039]图3为本申请实施例提供的一种I/O处理系统的结构示意图;
[0040]图4为本申请提供的I/O处理系统与存储系统进行连接的示意图;
[0041]图5为本申请实施例提供的一种I/O处理设备的结构示意图;
[0042]图6为本申请实施例提供的一种I/O处理设备的另一结构示意图。
具体实施方式<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种I/O处理方法,其特征在于,应用于存储系统的块层,包括:确定所述存储系统中已用CPU核的可用资源量;获取待处理I/O;确定处理所述待处理I/O所需的CPU资源量;判断所述CPU资源量是否超出所述可用资源量;若所述CPU资源量超出所述可用资源量,则启用未使用的目标CPU核,基于所述目标CPU核生成目标软件上下文分发队列,将所述目标软件上下文分发队列映射至已有的硬件上下文分发队列,并在所述待处理I/O中选取目标I/O,分配所述目标I/O至所述目标软件上下文分发队列进行处理。2.根据权利要求1所述的方法,其特征在于,所述判断所述CPU资源量是否超出所述可用资源量之后,还包括:若所述CPU资源量未超出所述可用资源量,则确定所述可用资源量与所述CPU资源量间的资源量差值,确定资源量与所述资源量差值相等的待关闭CPU核,并关闭所述待关闭CPU,删除所述待关闭CPU对应的已有软件上下文分发队列,取消所述已有软件上下文分发队列与所述硬件上下文分发队列间的映射关系。3.根据权利要求1所述的方法,其特征在于,所述确定所述存储系统中已用CPU核的可用资源量,包括:获取所述已用CPU核的性能配置信息;基于所述性能配置信息确定所述已用CPU核的所述可用资源量。4.根据权利要求3所述的方法,其特征在于,所述获取所述已用CPU核的性能配置信息,包括:通过所述存储系统的驱动层获取所述已用CPU核的所述性能配置信息。5.根据权利要求1所述的方法,其特征在于,所述启用未使用的目标CPU核,包括:通过所述存储系统的...

【专利技术属性】
技术研发人员:张雪庆
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1