CN112463027A - 一种i/o处理方法、系统、设备及计算机可读存储介质 - Google Patents
一种i/o处理方法、系统、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112463027A CN112463027A CN202011181130.1A CN202011181130A CN112463027A CN 112463027 A CN112463027 A CN 112463027A CN 202011181130 A CN202011181130 A CN 202011181130A CN 112463027 A CN112463027 A CN 112463027A
- Authority
- CN
- China
- Prior art keywords
- target
- cpu
- resource amount
- cpu core
- processed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 26
- 238000012545 processing Methods 0.000 claims abstract description 76
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000013507 mapping Methods 0.000 claims abstract description 21
- 238000004590 computer program Methods 0.000 claims description 34
- 230000000875 corresponding effect Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000011982 device technology Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种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阻塞。
Description
技术领域
本申请涉及存储技术领域,更具体地说,涉及一种I/O处理方法、系统、设备及计算机可读存储介质。
背景技术
在存储系统中,用户发起读写操作时,并不是直接操作存储设备,而是需要经过较长的IO(Input/Output,输入/输出)栈才能完成数据的读写。读写操作大体上需依次经过虚拟文件系统(Virtual File Systems,vfs)、磁盘文件系统、block(块)层、设备驱动层,最后到达存储器件,器件处理完成后发送中断通知驱动程序。且在当前架构中,是为每个CPU(central processing unit,中央处理器)分配一个软件队列(soft context dispatchqueue),又根据存储器的硬件队列(hardware queue)分配相同数量的硬件上下文分发队列(hard context dispatch queue),通过固定的映射关系,将1个或多个软件队列映射给到1个硬件队列,再将其与存储器的硬件队列对应起来。当某个I/O进程处理任务突然增加时,I/O就会堆积在相应的软件队列中,此时没有额外的CPU资源来处理增加的I/O,就会导致部分I/O超时,会严重影响整个系统的性能,成为性能瓶颈。
综上所述,如何提高存储系统处理I/O的效率是目前本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种I/O处理方法,其能在一定程度上解决如何提高存储系统处理I/O的效率的技术问题。本申请还提供了一种I/O处理系统、设备及计算机可读存储介质。
为了实现上述目的,本申请提供如下技术方案:
一种I/O处理方法,应用于存储系统的块层,包括:
确定所述存储系统中已用CPU核的可用资源量;
获取待处理I/O;
确定处理所述待处理I/O所需的CPU资源量;
判断所述CPU资源量是否超出所述可用资源量;
若所述CPU资源量超出所述可用资源量,则启用未使用的目标CPU核,基于所述目标CPU核生成目标软件上下文分发队列,将所述目标软件上下文分发队列映射至已有的硬件上下文分发队列,并在所述待处理I/O中选取目标I/O,分配所述目标I/O至所述目标软件上下文分发队列进行处理。
优选的,所述判断所述CPU资源量是否超出所述可用资源量之后,还包括:
若所述CPU资源量未超出所述可用资源量,则确定所述可用资源量与所述CPU资源量间的资源量差值,确定资源量与所述资源量差值相等的待关闭CPU核,并关闭所述待关闭CPU,删除所述待关闭CPU对应的已有软件上下文分发队列,取消所述已有软件上下文分发队列与所述硬件上下文分发队列间的映射关系。
优选的,所述确定所述存储系统中已用CPU核的可用资源量,包括:
获取所述已用CPU核的性能配置信息;
基于所述性能配置信息确定所述已用CPU核的所述可用资源量。
优选的,所述获取所述已用CPU核的性能配置信息,包括:
通过所述存储系统的驱动层获取所述已用CPU核的所述性能配置信息。
优选的,所述启用未使用的目标CPU核,包括:
通过所述存储系统的驱动层发送启用指令至未使用的所述目标CPU,以启用所述目标CPU核。
优选的,所述启用未使用的目标CPU核之后,还包括:
更新所述目标CPU核的性能参数。
优选的,所述确定处理所述待处理I/O所需的CPU资源量,包括:
获取所述待处理I/O的目标因子,所述目标因子的类型包括带宽值、时延值、拥塞值;
基于所述目标因子确定所述CPU资源量。
一种I/O处理系统,应用于存储系统的块层,包括:
第一确定模块,用于确定所述存储系统中已用CPU核的可用资源量;
第一获取模块,用于获取待处理I/O;
第二确定模块,用于确定处理所述待处理I/O所需的CPU资源量;
第一判断模块,用于判断所述CPU资源是否超出所述可用资源量;若所述CPU资源量超出所述可用资源量,则启用未使用的目标CPU核,基于所述目标CPU核生成目标软件上下文分发队列,将所述目标软件上下文分发队列映射至已有的硬件上下文分发队列,并在所述待处理I/O中选取目标I/O,分配所述目标I/O至所述目标软件上下文分发队列进行处理。
一种I/O处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一所述I/O处理方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述I/O处理方法的步骤。
本申请提供的一种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处理系统、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种I/O处理方法的流程图;
图2为本申请实施例提供的一种I/O处理方法的第二流程图;
图3为本申请实施例提供的一种I/O处理系统的结构示意图;
图4为本申请提供的I/O处理系统与存储系统进行连接的示意图;
图5为本申请实施例提供的一种I/O处理设备的结构示意图;
图6为本申请实施例提供的一种I/O处理设备的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在存储系统中,用户发起读写操作时,并不是直接操作存储设备,而是需要经过较长的IO(Input/Output,输入/输出)栈才能完成数据的读写。读写操作大体上需依次经过虚拟文件系统(Virtual File Systems,vfs)、磁盘文件系统、block(块)层、设备驱动层,最后到达存储器件,器件处理完成后发送中断通知驱动程序。block层连接文件系统层和设备驱动层,从submit_bio开始,bio(块设备的输入/输出)就进入了block层,这些bio被block层抽象成request管理,在适当的时候这些request离开block层进入设备驱动层。IO请求完成后,block层的软中断负责处理IO完成后的工作。
早期的block层框架是单队列(single-queue)架构,适用于“硬件单队列”的存储设备(比如机械磁盘),随着存储器件技术的不断发展,支持“硬件多队列”的存储器件越来越多,如NVMe(Non-Volatile Memory express)SSD(Solid State Disk,固态硬盘),因此在block层增加了多队列(multi-queue)架构。早在3.13内核就已经加入了多队列机制,经过多年的发展multi-queue越来越稳定,Linux 5.0+已经默认使用multi-queue。目前,企业级用户使用NVMe SSD的场景越来越多,而且随着PCIe(peripheral component interconnectexpress,高速串行计算机扩展总线标准)技术的演进,PCIe 4.0,PCIe 5.0的带宽越来越大,处理IO的时延也逐渐减少,及时使用当前的multi-queue架构,性能瓶颈也在更多的体现在软件上且在当前架构中,是为每个CPU(central processing unit,中央处理器)分配一个软件队列(soft context dispatch queue),又根据存储器的硬件队列(hardwarequeue)分配相同数量的硬件上下文分发队列(hard context dispatch queue),通过固定的映射关系,将1个或多个软件队列映射给到1个硬件队列,再将其与存储器的硬件队列对应起来。当某个I/O进程处理任务突然增加时,I/O就会堆积在相应的软件队列中,此时没有额外的CPU资源来处理增加的I/O,就会导致部分I/O超时,会严重影响整个系统的性能,成为性能瓶颈。而本申请提供的I/O处理方法可以提高存储系统处理I/O的效率。
请参阅图1,图1为本申请实施例提供的一种I/O处理方法的流程图。
本申请实施例提供的一种I/O处理方法,应用于存储系统的块层,可以包括以下步骤:
步骤S101:确定存储系统中已用CPU核的可用资源量。
实际应用中,存储系统的块层可以先确定存储系统中已用CPU核的可用资源量,以便后续根据可用资源量判断I/O是否阻塞,可用资源的类型可以包括核心数、频率等。
步骤S102:获取待处理I/O。
实际应用中,存储系统的块层在确定存储系统中已用的CPU核的可用资源量之后,便可以获取待处理I/O,待处理I/O的类型及来源可以根据实际需要确定,比如待处理I/O可以来自存储系统的磁盘文件系统、驱动层等。
步骤S103:确定处理待处理I/O所需的CPU资源量。
实际应用中,存储系统的块层在获取待处理I/O之后,便可以确定处理待处理I/O所需的CPU资源量,也即需确定出用CPU处理待处理I/O时所需消耗的资源量,以便将CPU资源量与可用资源量进行比较,判断已用CPU核是否能够无阻塞的处理待处理I/O。
步骤S104:判断CPU资源量是否超出可用资源量;若CPU资源量超出可用资源量,则执行步骤S105。
步骤S105:启用未使用的目标CPU核,基于目标CPU核生成目标软件上下文分发队列,将目标软件上下文分发队列映射至已有的硬件上下文分发队列,并在待处理I/O中选取目标I/O,分配目标I/O至目标软件上下文分发队列进行处理。
实际应用中,存储系统的块层在确定处理待处理I/O所需的CPU资源量之后,便可以判断CPU资源是否超出可用资源量;若CPU资源量超出可用资源量,则表示已用CPU核在处理待处理I/O时会出现I/O阻塞,此时为了避免出现I/O阻塞,可以启用未使用的目标CPU核,目标CPU核也即新的CPU核,基于目标CPU核生成目标软件上下文分发队列,将目标软件上下文分发队列映射至已有的硬件上下文分发队列,并在待处理I/O中选取目标I/O,分配目标I/O至目标软件上下文分发队列进行处理,以避免待处理I/O在已用CPU核处堆积。
本申请提供的一种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阻塞。
请参阅图2,图2为本申请实施例提供的一种I/O处理方法的第二流程图。
本申请实施例提供的一种I/O处理方法,应用于存储系统的块层,可以包括以下步骤:
步骤S201:确定存储系统中已用CPU核的可用资源量。
步骤S202:获取待处理I/O。
步骤S203:确定处理待处理I/O所需的CPU资源量。
步骤S204:判断CPU资源量是否超出可用资源量;若CPU资源量超出可用资源量,则执行步骤S205;若CPU资源量未超出可用资源量,则执行步骤S206。
步骤S205:启用未使用的目标CPU核,基于目标CPU核生成目标软件上下文分发队列,将目标软件上下文分发队列映射至已有的硬件上下文分发队列,并在待处理I/O中选取目标I/O,分配目标I/O至目标软件上下文分发队列进行处理。
步骤S206:确定可用资源量与CPU资源量间的资源量差值,确定资源量与资源量差值相等的待关闭CPU核,并关闭待关闭CPU,删除待关闭CPU对应的已有软件上下文分发队列,取消已有软件上下文分发队列与硬件上下文分发队列间的映射关系。
实际应用中,为了确保有未使用的CPU核可供下次使用,在判定CPU资源量未超出可用资源量的情况下,可以确定可用资源量与CPU资源量间的资源量差值,确定资源量与资源量差值相等的待关闭CPU核,并关闭待关闭CPU,删除待关闭CPU对应的已有软件上下文分发队列,取消已有软件上下文分发队列与硬件上下文分发队列间的映射关系,以将待关闭CPU转变为未使用CPU。此外,由于关闭了待关闭CPU,可以避免待处理I/O过多占用CPU资源,可以降低I/O对CPU资源的占用率。
本申请实施例提供的一种I/O处理方法中,存储系统的块层在确定存储系统中已用CPU核的可用资源量的过程中,为了快速确定可用资源量,可以获取已用CPU核的性能配置信息;基于性能配置信息确定已用CPU核的可用资源量。
具体应用场景中,存储系统的块层在获取已用CPU核的性能配置信息的过程中,可以通过存储系统的驱动层获取已用CPU核的性能配置信息。比如,存储系统的块层可以控制驱动层发送相应的Mailbox命令来向CPU pCode查询性能配置信息等。
本申请实施例提供的一种I/O处理方法中,存储系统的块层在启用未使用的目标CPU核的过程中,可以通过存储系统的驱动层发送启用指令至未使用的目标CPU,以快速启用目标CPU核。比如,存储系统的块层可以通过控制驱动层下发Control Mailbox命令到CPUpCode来启用目标CPU核等。
本申请实施例提供的一种I/O处理方法中,存储系统的块层在启用未使用的目标CPU核之后,还可以更新目标CPU核的性能参数,以使目标CPU核的性能参数最新。CPU核的性能参数可以根据实际需要确定,比如可以包括Tj Max(Junction Temperature Max,CPU可正常运行允许的最高温度)、HWP(HARDWARE-CONTROLLED PERFORMANCE STATES,硬件控制性能状态)MaxPL1、CLM(Collaborative Lifecycle Management)P0/P1等参数。
本申请实施例提供的一种I/O处理方法中,存储系统的块层在确定处理待处理I/O所需的CPU资源量的过程中,为了快速确定CPU资源量,可以获取待处理I/O的目标因子,目标因子的类型包括带宽值、时延值、拥塞值等;基于目标因子确定CPU资源量。
请参阅图3,图3为本申请实施例提供的一种I/O处理系统的结构示意图。
本申请实施例提供的一种I/O处理系统,应用于存储系统的块层,可以包括:
第一确定模块101,用于确定存储系统中已用CPU核的可用资源量;
第一获取模块102,用于获取待处理I/O;
第二确定模块103,用于确定处理待处理I/O所需的CPU资源量;
第一判断模块104,用于判断CPU资源量是否超出可用资源量;若CPU资源量超出可用资源量,则启用未使用的目标CPU核,基于目标CPU核生成目标软件上下文分发队列,将目标软件上下文分发队列映射至已有的硬件上下文分发队列,并在待处理I/O中选取目标I/O,分配目标I/O至目标软件上下文分发队列进行处理。
本申请实施例提供的一种I/O处理系统,应用于存储系统的块层,第一判断模块还可以用于:判断CPU资源量是否超出可用资源量之后,若CPU资源量未超出可用资源量,则确定可用资源量与CPU资源量间的资源量差值,确定资源量与资源量差值相等的待关闭CPU核,并关闭待关闭CPU,删除待关闭CPU对应的已有软件上下文分发队列,取消已有软件上下文分发队列与硬件上下文分发队列间的映射关系。
本申请实施例提供的一种I/O处理系统,应用于存储系统的块层,第一确定模块可以包括:
第一获取子模块,用于获取已用CPU核的性能配置信息;
第一确定子模块,用于基于性能配置信息确定已用CPU核的可用资源量。
本申请实施例提供的一种I/O处理系统,应用于存储系统的块层,第一获取子模块可以包括:
第一获取单元,用于通过存储系统的驱动层获取已用CPU核的性能配置信息。
本申请实施例提供的一种I/O处理系统,应用于存储系统的块层,第一判断模块可以包括:
第一启用单元,用于通过存储系统的驱动层发送启用指令至未使用的目标CPU,以启用目标CPU核。
本申请实施例提供的一种I/O处理系统,应用于存储系统的块层,还可以包括:
第一更新模块,用于第一判断模块启用未使用的目标CPU核之后,更新目标CPU核的性能参数。
本申请实施例提供的一种I/O处理系统,应用于存储系统的块层,第二确定模块可以包括:
第二获取单元,用于获取待处理I/O的目标因子,目标因子的类型包括带宽值、时延值、拥塞值;
第一确定单元,用于基于目标因子确定CPU资源量。
实际应用中,本申请提供的I/O处理系统在存储系统中的连接方式可以根据实际需要确定,比如本申请提供的I/O处理系统可以按图4所示方式与存储系统进行连接等。
本申请还提供了一种I/O处理设备及计算机可读存储介质,其均具有本申请实施例提供的一种I/O处理方法具有的对应效果。请参阅图5,图5为本申请实施例提供的一种I/O处理设备的结构示意图。
本申请实施例提供的一种I/O处理设备,应用于存储系统的块层,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:
确定存储系统中已用CPU核的可用资源量;
获取待处理I/O;
确定处理待处理I/O所需的CPU资源量;
判断CPU资源量是否超出可用资源量;
若CPU资源量超出可用资源量,则启用未使用的目标CPU核,基于目标CPU核生成目标软件上下文分发队列,将目标软件上下文分发队列映射至已有的硬件上下文分发队列,并在待处理I/O中选取目标I/O,分配目标I/O至目标软件上下文分发队列进行处理。
本申请实施例提供的一种I/O处理设备,应用于存储系统的块层,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:判断CPU资源量是否超出可用资源量之后,若CPU资源量未超出可用资源量,则确定可用资源量与CPU资源量间的资源量差值,确定资源量与资源量差值相等的待关闭CPU核,并关闭待关闭CPU,删除待关闭CPU对应的已有软件上下文分发队列,取消已有软件上下文分发队列与硬件上下文分发队列间的映射关系。
本申请实施例提供的一种I/O处理设备,应用于存储系统的块层,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:获取已用CPU核的性能配置信息;基于性能配置信息确定已用CPU核的可用资源量。
本申请实施例提供的一种I/O处理设备,应用于存储系统的块层,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:通过存储系统的驱动层获取已用CPU核的性能配置信息。
本申请实施例提供的一种I/O处理设备,应用于存储系统的块层,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:通过存储系统的驱动层发送启用指令至未使用的目标CPU,以启用目标CPU核。
本申请实施例提供的一种I/O处理设备,应用于存储系统的块层,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:启用未使用的目标CPU核之后,更新目标CPU核的性能参数。
本申请实施例提供的一种I/O处理设备,应用于存储系统的块层,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:获取待处理I/O的目标因子,目标因子的类型包括带宽值、时延值、拥塞值;基于目标因子确定CPU资源量。
请参阅图6,本申请实施例提供的另一种I/O处理设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现I/O处理设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(HML)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本申请实施例提供的一种计算机可读存储介质,应用于存储系统的块层,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:
确定存储系统中已用CPU核的可用资源量;
获取待处理I/O;
确定处理待处理I/O所需的CPU资源量;
判断CPU资源量是否超出可用资源量;
若CPU资源量超出可用资源量,则启用未使用的目标CPU核,基于目标CPU核生成目标软件上下文分发队列,将目标软件上下文分发队列映射至已有的硬件上下文分发队列,并在待处理I/O中选取目标I/O,分配目标I/O至目标软件上下文分发队列进行处理。
本申请实施例提供的一种计算机可读存储介质,应用于存储系统的块层,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:判断CPU资源量是否超出可用资源量之后,若CPU资源量未超出可用资源量,则确定可用资源量与CPU资源量间的资源量差值,确定资源量与资源量差值相等的待关闭CPU核,并关闭待关闭CPU,删除待关闭CPU对应的已有软件上下文分发队列,取消已有软件上下文分发队列与硬件上下文分发队列间的映射关系。
本申请实施例提供的一种计算机可读存储介质,应用于存储系统的块层,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:获取已用CPU核的性能配置信息;基于性能配置信息确定已用CPU核的可用资源量。
本申请实施例提供的一种计算机可读存储介质,应用于存储系统的块层,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:通过存储系统的驱动层获取已用CPU核的性能配置信息。
本申请实施例提供的一种计算机可读存储介质,应用于存储系统的块层,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:通过存储系统的驱动层发送启用指令至未使用的目标CPU,以启用目标CPU核。
本申请实施例提供的一种计算机可读存储介质,应用于存储系统的块层,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:启用未使用的目标CPU核之后,更新目标CPU核的性能参数。
本申请实施例提供的一种计算机可读存储介质,应用于存储系统的块层,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:获取待处理I/O的目标因子,目标因子的类型包括带宽值、时延值、拥塞值;基于目标因子确定CPU资源量。
本申请所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本申请实施例提供的I/O处理系统、设备及计算机可读存储介质中相关部分的说明请参见本申请实施例提供的I/O处理方法中对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
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核,包括:
通过所述存储系统的驱动层发送启用指令至未使用的所述目标CPU,以启用所述目标CPU核。
6.根据权利要求1所述的方法,其特征在于,所述启用未使用的目标CPU核之后,还包括:
更新所述目标CPU核的性能参数。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述确定处理所述待处理I/O所需的CPU资源量,包括:
获取所述待处理I/O的目标因子,所述目标因子的类型包括带宽值、时延值、拥塞值;
基于所述目标因子确定所述CPU资源量。
8.一种I/O处理系统,其特征在于,应用于存储系统的块层,包括:
第一确定模块,用于确定所述存储系统中已用CPU核的可用资源量;
第一获取模块,用于获取待处理I/O;
第二确定模块,用于确定处理所述待处理I/O所需的CPU资源量;
第一判断模块,用于判断所述CPU资源量是否超出所述可用资源量;若所述CPU资源量超出所述可用资源量,则启用未使用的目标CPU核,基于所述目标CPU核生成目标软件上下文分发队列,将所述目标软件上下文分发队列映射至已有的硬件上下文分发队列,并在所述待处理I/O中选取目标I/O,分配所述目标I/O至所述目标软件上下文分发队列进行处理。
9.一种I/O处理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述I/O处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述I/O处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011181130.1A CN112463027B (zh) | 2020-10-29 | 2020-10-29 | 一种i/o处理方法、系统、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011181130.1A CN112463027B (zh) | 2020-10-29 | 2020-10-29 | 一种i/o处理方法、系统、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112463027A true CN112463027A (zh) | 2021-03-09 |
CN112463027B CN112463027B (zh) | 2022-08-12 |
Family
ID=74834188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011181130.1A Active CN112463027B (zh) | 2020-10-29 | 2020-10-29 | 一种i/o处理方法、系统、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463027B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114327259A (zh) * | 2021-11-30 | 2022-04-12 | 苏州浪潮智能科技有限公司 | 一种闪存通道控制器运行方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495764A (zh) * | 2011-12-06 | 2012-06-13 | 曙光信息产业股份有限公司 | 数据分流的实现方法和装置 |
CN107479976A (zh) * | 2017-08-14 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种多程序实例同时运行下cpu资源分配方法及装置 |
CN108664116A (zh) * | 2018-04-27 | 2018-10-16 | 北京邮电大学 | 网络功能虚拟化的自适应省电方法、装置及cpu控制器 |
CN109213583A (zh) * | 2018-07-25 | 2019-01-15 | 中国科学院计算技术研究所 | 一种通过软硬件协同支持读写性能隔离的i/o调度器 |
CN110995616A (zh) * | 2019-12-06 | 2020-04-10 | 苏州浪潮智能科技有限公司 | 一种大流量服务器的管理方法、设备及可读介质 |
-
2020
- 2020-10-29 CN CN202011181130.1A patent/CN112463027B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495764A (zh) * | 2011-12-06 | 2012-06-13 | 曙光信息产业股份有限公司 | 数据分流的实现方法和装置 |
CN107479976A (zh) * | 2017-08-14 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种多程序实例同时运行下cpu资源分配方法及装置 |
CN108664116A (zh) * | 2018-04-27 | 2018-10-16 | 北京邮电大学 | 网络功能虚拟化的自适应省电方法、装置及cpu控制器 |
CN109213583A (zh) * | 2018-07-25 | 2019-01-15 | 中国科学院计算技术研究所 | 一种通过软硬件协同支持读写性能隔离的i/o调度器 |
CN110995616A (zh) * | 2019-12-06 | 2020-04-10 | 苏州浪潮智能科技有限公司 | 一种大流量服务器的管理方法、设备及可读介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114327259A (zh) * | 2021-11-30 | 2022-04-12 | 苏州浪潮智能科技有限公司 | 一种闪存通道控制器运行方法、装置、设备及存储介质 |
CN114327259B (zh) * | 2021-11-30 | 2023-08-18 | 苏州浪潮智能科技有限公司 | 一种闪存通道控制器运行方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112463027B (zh) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107690622B9 (zh) | 实现硬件加速处理的方法、设备和系统 | |
EP3255553A1 (en) | Transmission control method and device for direct memory access | |
US10951741B2 (en) | Computer device and method for reading or writing data by computer device | |
US11983444B2 (en) | Memory system and method of controlling nonvolatile memory | |
US11010094B2 (en) | Task management method and host for electronic storage device | |
US20220222016A1 (en) | Method for accessing solid state disk and storage device | |
CN110162396A (zh) | 内存回收方法、装置、系统和存储介质 | |
CN113342256A (zh) | 被配置为支持多个主机的存储设备及其操作方法 | |
CN112463027B (zh) | 一种i/o处理方法、系统、设备及计算机可读存储介质 | |
CN109995595B (zh) | 一种rgw配额确定方法、系统、设备及计算机介质 | |
CN112463028B (zh) | 一种i/o处理方法、系统、设备及计算机可读存储介质 | |
US20230393782A1 (en) | Io request pipeline processing device, method and system, and storage medium | |
CN109002255B (zh) | 存储系统及其操作方法 | |
US20200073566A1 (en) | Storage system and storage control method | |
CN113157611B (zh) | 一种数据传输控制方法、装置、设备及可读存储介质 | |
CN111857996B (zh) | 一种中断处理方法、系统、设备及计算机可读存储介质 | |
CN113672176A (zh) | 一种数据读取方法、系统、设备及计算机可读存储介质 | |
CN105519055A (zh) | 一种I/O通道QoS动态均衡方法及装置 | |
WO2023287407A1 (en) | Hardware component initialization | |
US11928360B2 (en) | Command slot management for memory devices | |
CN117806851B (zh) | 多主机共享的内存系统、内存访问方法、设备和存储介质 | |
CN109947572B (zh) | 通信控制方法、装置、电子设备及存储介质 | |
CN113076138B (zh) | 一种NVMe命令处理方法、设备及介质 | |
US20240168876A1 (en) | Solving submission queue entry overflow using metadata or data pointers | |
US8209449B2 (en) | Method for enabling several virtual processing units to directly and concurrently access a peripheral unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |