CN114201273A - 资源使用方法、设备和计算机程序产品 - Google Patents
资源使用方法、设备和计算机程序产品 Download PDFInfo
- Publication number
- CN114201273A CN114201273A CN202010987912.8A CN202010987912A CN114201273A CN 114201273 A CN114201273 A CN 114201273A CN 202010987912 A CN202010987912 A CN 202010987912A CN 114201273 A CN114201273 A CN 114201273A
- Authority
- CN
- China
- Prior art keywords
- node
- latency
- job
- accelerator resource
- remote processing
- 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.)
- Pending
Links
Images
Classifications
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2069—Management of state, configuration or failover
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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
-
- 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/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5022—Workload threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例提供了资源使用方法、电子设备和计算机程序产品。一种资源使用方法包括:在存储系统的第一节点,确定第一节点的第一加速器资源的本地处理时延是否超过第一阈值时延;如果确定本地处理时延超过第一阈值时延,确定与存储系统的至少一个第二节点各自对应的至少一个远程处理时延,每个远程处理时延包括相应第二节点的第二加速器资源的处理时延和在第一节点与相应第二节点之间的往返时间;以及至少基于至少一个远程处理时延,从至少一个第二节点的第二加速器资源选择第二加速器资源用于执行第一节点的目标作业。以此方式,可以实现跨节点的加速器资源调用。这不仅提高了作业的处理效率,而且还提高了系统资源的整体利用率。
Description
技术领域
本公开的实施例涉及计算机技术领域,并且更具体地,涉及资源使用方法、电子设备和计算机程序产品。
背景技术
加速器资源是指一些具有加速功能的处理资源,例如协处理器,其能够辅助中央处理器(CPU)执行一些加速任务。协处理器是一种芯片,其能够减轻系统CPU的特定处理任务。例如,数学协处理器可以进行数字处理,图形协处理器(GPU)可以处理视频绘制。GPU是一种专用于图形或图像的核心处理器,其主要负责的任务是加速图形处理速度。
快速辅助技术(QAT)卡也是一种协处理器,其可以用于加速计算密集型任务,例如压缩、加密、解密等。通过为节点添加QAT卡,能够加快该节点的计算运行,提高系统的性能和效率。
发明内容
本公开的实施例提供了一种资源使用方案。
在本公开的第一方面,提供了一种资源使用的方法。该方法包括:在存储系统的第一节点,确定第一节点的第一加速器资源的本地处理时延是否超过第一阈值时延;如果确定本地处理时延超过第一阈值时延,确定与存储系统的至少一个第二节点各自对应的至少一个远程处理时延,每个远程处理时延包括相应第二节点的第二加速器资源的处理时延和在第一节点与相应第二节点之间的往返时间;以及至少基于至少一个远程处理时延,从至少一个第二节点的第二加速器资源选择第二加速器资源用于执行第一节点的目标作业。
在本公开的第二方面,提供了一种电子设备。该电子设备包括处理器以及与处理器耦合的存储器,存储器具有存储于其中的指令,指令在被处理器执行时使设备执行动作,动作包括:在存储系统的第一节点,确定第一节点的第一加速器资源的本地处理时延是否超过第一阈值时延;如果确定本地处理时延超过第一阈值时延,确定与存储系统的至少一个第二节点各自对应的至少一个远程处理时延,每个远程处理时延包括相应第二节点的第二加速器资源的处理时延和在第一节点与相应第二节点之间的往返时间;以及至少基于至少一个远程处理时延,从至少一个第二节点的第二加速器资源选择第二加速器资源用于执行第一节点的目标作业。
在本公开的第三方面,提供了一种计算机程序产品,计算机程序产品被有形地存储在计算机可读介质上并且包括计算机可执行指令,计算机可执行指令在被执行时使设备:在存储系统的第一节点,确定第一节点的第一加速器资源的本地处理时延是否超过第一阈值时延;如果确定本地处理时延超过第一阈值时延,确定与存储系统的至少一个第二节点各自对应的至少一个远程处理时延,每个远程处理时延包括相应第二节点的第二加速器资源的处理时延和在第一节点与相应第二节点之间的往返时间;以及至少基于至少一个远程处理时延,从至少一个第二节点的第二加速器资源选择第二加速器资源用于执行第一节点的目标作业。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了本公开的实施例能够在其中实现的存储系统的示意框图;
图2示出了根据本公开的一些实施例的示例存储系统的示意框图;
图3示出了根据本公开的一些实施例的资源使用的过程的流程图;
图4示出了根据本公开的另一些实施例的示例存储系统的示意框图;
图5示出了根据本公开的另一些实施例的资源使用的过程的流程图;以及
图6示出了可以用来实施本公开的实施例的示例设备的框图。
具体实施方式
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
图1示出了本公开的实施例可以在其中被实现的存储系统100的示意图。存储系统100用于提供数据存储相关的任务,包括诸如存储、数据访问、数据保护(例如,去重、备份、加密、解密等)。因此,存储系统100有时也称为数据保护系统或去重系统(因为去重是数据保护中的重要功能之一)。应当理解,图1示出的系统仅是示例。在实际应用中,存储系统中可能存在更多其他设备和/或设备内的组件,或者示出的设备和/或组件可以以其他方式被布置。
如图1所示,存储系统100包括多个(例如N个)节点110-1、110-2、110-3、……110-N,其中N是超过1的整数。在下文中,为便于讨论,节点110-1、110-2、110-3、……110-N有时被统称为或单独称为节点110。每个节点110被配置为执行存储系统100的各种作业。
在存储系统100中,要在节点110处执行的作业包括各种类型的与数据存储相关的作业。作为一些示例,作业可以包括数据备份作业,用于执行对用户数据的备份;数据恢复作业,用于恢复受损坏的用户数据;垃圾收集作业,用于收集存储系统100中的不再被占用的存储空间。当然,这些仅是一些具体示例。在存储系统100中可能存在其他类型的作业。
节点110可以由一个或多个计算设备、计算系统、服务器、大型机、边缘设备等来实现。每个节点110均部署有相应的资源,包括处理资源、存储资源、网络资源等,以用于执行相应的作业。通常,在通用处理设备(未示出)以外,每个节点110还包括可以部署有加速器资源。如图1所示,节点110-1包括加速器资源112-1,节点110-2包括加速器资源112-2,节点110-3包括加速器资源112-3,……节点110-N包括加速器资源112-N。在下文中,为便于讨论,加速器资源112-1、112-2、112-3、……112-N有时被统称为或单独称为加速器资源112。
加速器资源112的使用可以提高各个节点112的处理性能,以便提高节点的整体吞吐量。在一些实施例中,加速器资源112可以为一个或多个QAT卡。应当理解,虽然在本公开的一些实施例,加速器资源使用QAT卡作为示例,然而,加速器资源112也可以包括其他具有加速功能的硬件处理设备。
取决于所采用的存储系统,在一些实施例中,存储系统100可以包括两个节点(即N=2)110。这样的系统称为活跃-非活跃(active-passive)高可用(High Availability,HA)系统。在这样的系统中,一个节点110被配置为活跃节点,另一个节点110被配置为非活跃节点或备用节点。一般情况下,存储系统100的各种作业均由活跃节点执行。非活跃节点是活跃节点的镜像。当发生活跃节点发生灾难时,非活跃节点被启动,以替代活跃节点。
在一些实施例中,存储系统100可以包括可扩展的多节点系统,其包括至少两个(即N≥2)节点110。在这样的系统中,作业可以被调度到各个节点110执行。每个节点110可以被部署有相同或不同的加速器资源112用于执行相应的作业。
如以上提及的,在存储系统的各个节点中部署加速器资源能够提高处理性能。然而,在作业执行过程中可能存在加速器资源不足的现象。例如,在活跃-非活跃HA系统中,处理压力集中在活跃节点上,而非活跃节点的加速器资源在大多数时是空闲的。在可扩展的多节点系统中,虽然作业可以跨节点分配,但仍然会存在分配不均匀的现象,从而导致一些节点需要执行更多作业,引起更大处理时延。
在面对加速器资源不足的问题时,一种简单的方案是通过部署更多的加速器资源来升级各个节点的处理能力。然而,这会带来开销的增加。在当前的存储系统中,存在一些作业调度方案,但这些方案主要关注于在单个节点内如何自适应地调度节点的通用处理资源和加速器资源。这样的方案无法从整个系统的全局角度来解决加速器资源不足的问题。
根据本公开的实施例,提出了一种资源使用方案。根据该方案,节点在确定本地的加速器资源的处理时延过大时,确定系统中的一个或多个其他节点的远程处理时延,并基于远程处理时延来选择其他节点的加速器资源用于执行作业。在确定是否要利用其它节点的加速器资源时,其他节点的远程处理时延不仅包括该节点的加速器资源的处理时延,还包括跨节点的往返时间。
以此方式,可以实现跨节点的加速器资源调用。这不仅提高了作业的处理效率,而且还提高了系统资源的整体利用率。
下面将参考附图来详细描述本公开的基本原理和若干示例实施例。
图2示出了根据本公开的一些实施例的示例存储系统的示意框图。为便于讨论,在图1的示例存储系统100的基础上来继续讨论如何实现根据本公开的实施例的加速器资源使用。为了实现跨节点的加速器资源调用,如图2所示,存储系统100的各个节点110分别部署有调度器210-1、210-2、210-3、……210-N以及远程过程调用(RPC)接口220-1、220-2、220-3、……220-N。
在下文中,为便于讨论,调度器210-1、210-2、210-3、……210-N有时统称为或单独称为调度器210,RPC接口220-1、220-2、220-3、……220-N有时统称为或单独称为RPC接口220。
节点110中的调度器210被配置为执行对该节点110中待执行作业的调度。在调度作业的执行时,根据本公开的实施例,调度器210被配置为确定调度本地加速器资源112或远程加速器资源112来执行作业。节点110中的RPC接口220被配置为在确定要使用远程加速器资源时,在节点110之间实现数据访问。RPC接口220的功能将在下文中详细讨论。
在本文中,“本地加速器资源”112指的是针对当前节点110,被部署在该节点110中的加速器资源,“远程加速器资源”112指的是针对当前节点110,被部署在其他节点110中的加速器资源。例如,对于节点110-1,加速器资源112-1是本地加速器资源,而加速器资源112-2、112-3、……112-N等是远程加速器资源。
发明人通过研究发现,使用远程加速器资源来平衡本地的处理压力是可行的,因为节点之间的数据传输速率可以被实现为较快,从而降低节点之间的网络传输时延。在一些节点中的常见加速器资源部署中,如果系统繁忙,需要处理的作业较多,对于例如128KB的单位数据,其处理时延可能会达到1500μs。然而,在基于诸如远程直接内存访问(RDMA)等高速网络接口连接的节点之间,传输单位数据的往返时间可能是在355μs到135μs之间。也就是说,与加速器资源的较高处理时延相比,节点之间的网络传输时延可能对作业的整体处理时延的影响不是很大。正是基于这样的研究发现,发明人提出了在本地节点中通过跨节点调用加速器资源来提高作业处理速率,从而提高整体资源利用率。
在一些实施例中,在存储系统100中,可以跨节点调度加速器资源的节点110之间通过高速网络接口连接,例如通过RDMA接口连接。在一些示例中,RDMA接口例如可以通过各种协议,诸如通过聚合以太网的RDMA(RoCE)协议实现节点110之间的数据传送。其他高速网络接口也是可行的。在一些实施例中,为了提高在跨节点调度情况下的处理性能,还可以使节点110之间的往返时间小于单个节点110的本地处理时延,这可以通过选择适当的网络接口来实现。
应当理解,虽然图2示出了存储系统100的各个节点110中均部署有调度器210和RPC接口220,取决于实际需要,可能仅一些节点110部署有调度器210和RPC接口220,以用于实现本公开的实施例的跨节点资源调度。要注意,为了清楚,图2未示出每个RPC接口220与系统100的所有其他节点的耦合,例如未示出节点110-1的RPC接口220-1与节点110-3的耦合。然而,根据实际需要,这样的耦合是可以存在的。
下面将参考图3来描述在节点110处实现的跨节点资源调用。图3示出了根据本公开的一些实施例的资源使用的过程300的流程图。过程300可以由系统100的节点110来实现,例如可以由节点110的调度器210来实现。为便于说明,将参考图2来描述过程300。在下文中,为便于讨论,假设在图2的存储系统100中的节点110-1处实现过程300。应当理解,根据需要,系统100中的任何节点110均可以被配置为实现过程300。
在文本中,在其中实现过程300的节点110(例如,节点110-1)有时称为“第一节点”,其中的加速器资源112(例如,加速器资源112-1)有时称为“第一加速器资源”。其他节点110(例如,节点110-2、110-3、……110-N中的一个或多个)或远程节点110有时称为“第二节点”,其中的加速器资源112有时称为“第二加速器资源”。在此使用的“第一”、“第二”仅是为了便于区分。
在310,节点110-1的调度器210-1确定加速器资源112-1的本地处理时延是否超过阈值时延(为便于说明,称为“第一阈值时延”)。本地处理时延指的是节点利用本地的加速器资源来执行作业的时延。加速器资源的处理时延可以通过多种方式来实现。在一些示例中,可以确定加速器资源112-1对单位数据量的处理速率,这例如可以由加速器资源的厂家提供或者通过其他手段确定。基于处理速率和当前待执行作业的数据量,可以确定本地处理时延。在一些示例中,还可以通过统计的方式,确定过去一段时间内对加速器资源112-1的处理时延。其他确定处理时延的方式也是可行的。
第一阈值时延指示节点110-1的待执行作业可接受的最大处理时延,特别是在利用加速器资源来执行的情况下可接受的最大处理时延。在一些示例中,第一阈值时延可以被确定为高优先级作业可接受的最大处理时延,因为高优先级作业通常对时延更敏感。通常,在节点110中要执行的作业可以具有相应的优先级。高优先级作业指的是优先级大于某个优先级阈值的作业。第一阈值时延还可以根据需要设置,在此不做限制。
如果调度器210-1确定加速器资源112-1的本地处理时延超过第一阈值时延,这意味着节点110-1的加速器资源112-1可能不足以快速响应于当前待执行的作业。根据本公开的实施例,可以考虑借用远程加速器资源来执行作业。
因此,如果确定本地处理时延超过第一阈值时延,在320,调度器210-1确定与至少一个远程节点110各自对应的至少一个远程处理时延。其他节点110可以包括能够向当前节点110-1共享加速器资源的节点。例如,在活跃-非活跃HA系统中,对于活跃节点,其他节点指的是非活跃节点。在可扩展的多节点系统中,其他节点110可以包括系统中的所有远程节点,或者远程节点中的一个或多个。
远程处理时延用于指示在使用远程处理资源112的情况下在时延方面的开销。不同于使用本地加速器资源112来执行作业,如果要使用另一节点的远程加速器资源112来执行作业,该作业的处理时延包括两个方面,其中一个方面是所使用的远程加速器资源112的处理时延,另一个方面是在两个节点之间的网络传输时延。网络传输时延可以由两个节点之间的往返时间(round-trip time)指示。因此,对于节点110-1,每个其他节点110对应的远程处理时延包括远程加速器资源的处理时延和在两个节点之间的往返时间。
在一些实施例中,在存储系统100中,各个节点110可以向其他节点通知这些节点110自己的加速器资源的处理时延和各个节点之间的往返时间。这样,要执行跨节点资源调用的每个节点110均可以获知该节点使用每个其他节点的远程加速器资源时要引入的时延。
在一些实施例中,还可以在存储系统100中设置时延检测器,用于收集节点110相对于其他节点110的远程处理时延。图4示出了这样的实施例。在图4的示例中,存储系统100包括时延监测器410。节点110与时延监测器410通信,向时延监测器410上报该节点110的加速器资源112的处理时延和该节点110与一个或多个其他节点110之间的往返时间。时延监测器410可以基于收集到的信息,向每个节点110报告该节点的一个或多个远程节点各自对应的远程处理时延。
继续参考回图3,在确定节点110-1的远程节点110各自对应的远程处理时延后,在330,调度器210-1至少基于至少一个远程处理时延,从一个或多个远程节点110的加速器资源112中选择加速器资源112用于执行节点110-1的目标作业。目标作业指的是节点110-1中可以被调度到以使用远程加速器资源来执行的作业。目标作业可以是一个或多个。
在一些实施例中,在确定要使用远程加速器资源112来执行目标作业时,对于活跃-非活跃HA系统中的活跃节点,可以直接选择非活跃节点的加速器资源用于执行目标作业。在包括两个以上节点的存储系统中,如果确定要使用远程加速器资源112来执行目标作业,调度器210-1可以选择远程处理时延较小的节点110中的远程加速器资源,以便尽可能降低处理时延。
例如,调度器210-1可以将多个节点110各自对应的远程处理时延与阈值时延(为便于说,称为“第二阈值时延”)相比较。基于比较的结果,调度器210-1可以从多个远程处理时延中确定未超过第二阈值时延的远程处理时延,并选择所确定的远程处理时延对应的节点110的加速器资源112用于执行目标作业。第二阈值时延可以被设置为节点110-1的待执行作业可接受的远程处理时延。在一些示例中,调度器210-1也可以从多个远程处理时延中选择最低的一个或多个处理时延,并选择所确定的远程处理时延对应的节点110的加速器资源112用于执行目标作业。
在一些实施例中,如果在310确定节点110-1的加速器资源112-1的本地处理时延未超过第一阈值时延,调度器210-1选择节点110-1的加速器资源112-1用于执行当前的待执行作业。
在一些实施例中,除考虑远程处理时延之外,调度器210-1还可以基于节点110-1中的待执行作业的优先级来确定是否能够使用远程加速器资源来执行待执行作业。图5示出了在考虑作业的优先级的示例实施例中在节点110-1处实现的资源使用的过程500的流程图。
在510,节点110-1的调度器210-1确定加速器资源112-1的本地处理时延是否超过第一阈值时延,其与过程300的310类似。如果确定本地处理时延超过第一阈值时延,在520,调度器210-1确定与至少一个其他节点110各自对应的至少一个远程处理时延,与过程500的520类似。
在530,调度器210-1确定待执行作业的优先级是否大于阈值优先级。阈值优先级指的是在本地加速器资源不足的情况下能够被调度到远程加速器资源执行的作业的最高优先级。阈值优先级可以根据实际需要设置。
如果以上简单提及的,在各个节点110中待执行的作业具有相应的优先级。调度器210-1可以利用各种优先级划分的等级和准则。在一些实施例中,作业的优先级可以是与作业的类型有关,例如数据恢复作业的优先级可能高于数据备份作业,而垃圾收集作业的优先级可能低于数据备份作业等等。在一些实施例中,作业的优先级还可以附加地或备选地与作业对应的应用或用户相关。例如,与高优先级的应用或用户相关的应用或作业的优先级可以被设置为高优先级。在一些实施例中,作业的优先级还可以被预先配置在作业的请求中。应当理解,还可以利用各种其他方式来区分各个作业的优先级。
在一些实施例中,期望将较高优先级的作业保留在本地加速器资源处执行,以避免对高优先级作业的执行引入过大的处理时延。较低优先级的作业可能对时延不敏感,因此可以被调度到远程加速器资源处执行。
因此,在过程500中,如果确定待执行作业的优先级低于阈值优先级,调度器210-1可以将待执行作业确定为能够使用远程加速器资源来执行的作业,即上文提及的“目标作业”。相应地,调度器210-1在530确定与至少一个远程节点110各自对应的至少一个远程处理时延,并且在540至少基于至少一个远程处理时延,从一个或多个远程节点110的加速器资源112中选择加速器资源112用于执行节点110-1的目标作业,这与过程300的320和330类似。
如果在510确定本地处理时延不超过第一阈值时延或者当前待执行作业的优先级不超过阈值优先级,在550,调度器220-1将选择本地的加速器资源112-1用于执行节点110-1的待执行作业。
根据本公开的实施例,在跨节点调度加速器资源是还考虑本地节点上的待执行作业的情况,例如待执行作业的优先级。这可以满足各种作业的不同需求,从而确保作业的执行与作业的服务等级协议(SLA)要求对齐。
在一些实施例中,在选择远程节点的远程加速器资源来执行本地节点110的作业时,调度器210可以调用RPC接口220来实现两个节点之间的数据传输,以使用所选择的远程加速器资源来执行作业。RPC接口220用于将待执行作业的数据访问(例如,输入输出I/O访问)分派到远程加速器资源112。这样的数据访问可以以非同步方式执行。
对于本地节点110而言,在执行作业时,要执行的事务包括将该作业的待处理数据发送到远程节点,并且通过诸如回调函数等,非同步地从远程节点获取处理后的数据。对于远程节点110,在执行作业时,要执行的事务包括从另一个节点110接收待处理数据,使用加速器资源112来处理接收到的数据,并且将处理后的数据返回另一节点110。应当理解,这样的跨节点的数据传输和接收可以通过各种方式来实现,在此不做具体限制。
图6示出了可以用来实施本公开的实施例的示例设备600的示意性框图。设备600可以被实现为或者被包括到图2或图4的节点110或调度器210。
如图所示,设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元601执行上文所描述的各个方法和处理,例如过程300和/或过程500。例如,在一些实施例中,过程300和/或过程500可被实现为计算机软件程序或计算机程序产品,其被有形地包含于机器可读介质,诸如非瞬态计算机可读介质,诸如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由CPU 601执行时,可以执行上文描述的过程300和/或过程500的一个或多个步骤。备选地,在其他实施例中,CPU 601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行过程300和/或过程500。
本领域的技术人员应当理解,上述本公开的方法的各个步骤可以通过通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
应当理解,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上所述仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。
Claims (24)
1.一种资源使用方法,包括:
在存储系统的第一节点,确定所述第一节点的第一加速器资源的本地处理时延是否超过第一阈值时延;
如果确定所述本地处理时延超过第一阈值时延,确定与存储系统的至少一个第二节点各自对应的至少一个远程处理时延,每个远程处理时延包括相应第二节点的第二加速器资源的处理时延和在所述第一节点与所述相应第二节点之间的往返时间;以及
至少基于所述至少一个远程处理时延,从所述至少一个第二节点的所述第二加速器资源选择第二加速器资源用于执行所述第一节点的目标作业。
2.根据权利要求1所述的方法,其中所述第一节点的所述本地处理时延超过所述往返时间。
3.根据权利要求1所述的方法,其中所述第一节点与所述至少一个第二节点之间通过高速网络接口连接。
4.根据权利要求1所述的方法,其中如果确定所述本地处理时延超过所述第一阈值时延,所述方法还包括:
将所述第一节点的待执行作业的优先级与阈值优先级相比较;
如果所述待执行作业的优先级低于所述阈值优先级,将所述待执行作业确定为所述目标作业;以及
如果所述待执行作业的优先级超过所述阈值优先级,选择所述第一节点的所述第一加速器资源用于执行所述待执行作业。
5.根据权利要求1所述的方法,其中所述至少一个第二节点包括多个第二节点,并且其中选择第二加速器资源用于执行所述第一节点的目标作业包括:
将所述多个第二节点各自对应的多个远程处理时延与第二阈值时延相比较;
基于所述比较的结果,从所述多个远程处理时延中确定未超过所述第二阈值时延的远程处理时延;以及
选择所确定的远程处理时延对应的第二节点的第二加速器资源用于执行所述目标作业。
6.根据权利要求1所述的方法,其中所述至少一个第二节点包括多个第二节点,并且其中选择第二加速器资源用于执行所述第一节点的目标作业包括:
从所述多个第二节点各自对应的多个远程处理时延中选择最低远程处理时延;以及
选择所选择的远程处理时延对应的第二节点的第二加速器资源用于执行所述目标作业。
7.根据权利要求1所述的方法,还包括:
通过远程程序调用接口,使所述目标作业使用所选择的所述第二加速器资源被执行。
8.根据权利要求1所述的方法,其中所述第一加速器资源和所述第二加速器资源包括快速辅助技术(QAT)卡。
9.一种电子设备,包括:
处理器;以及
与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述设备执行动作,所述动作包括:
在存储系统的第一节点,确定所述第一节点的第一加速器资源的本地处理时延是否超过第一阈值时延;
如果确定所述本地处理时延超过第一阈值时延,确定与存储系统的至少一个第二节点各自对应的至少一个远程处理时延,每个远程处理时延包括相应第二节点的第二加速器资源的处理时延和在所述第一节点与所述相应第二节点之间的往返时间;以及
至少基于所述至少一个远程处理时延,从所述至少一个第二节点的所述第二加速器资源选择第二加速器资源用于执行所述第一节点的目标作业。
10.根据权利要求9所述的设备,其中所述第一节点的所述本地处理时延超过所述往返时间。
11.根据权利要求9所述的设备,其中所述第一节点与所述至少一个第二节点之间通过高速网络接口连接。
12.根据权利要求9所述的设备,其中如果确定所述本地处理时延超过所述第一阈值时延,所述动作还包括:
将所述第一节点的待执行作业的优先级与阈值优先级相比较;
如果所述待执行作业的优先级低于所述阈值优先级,将所述待执行作业确定为所述目标作业;以及
如果所述待执行作业的优先级超过所述阈值优先级,选择所述第一节点的所述第一加速器资源用于执行所述待执行作业。
13.根据权利要求9所述的设备,其中所述至少一个第二节点包括多个第二节点,并且其中选择第二加速器资源用于执行所述第一节点的目标作业包括:
将所述多个第二节点各自对应的多个远程处理时延与第二阈值时延相比较;
基于所述比较的结果,从所述多个远程处理时延中确定未超过所述第二阈值时延的远程处理时延;以及
选择所确定的远程处理时延对应的第二节点的第二加速器资源用于执行所述目标作业。
14.根据权利要求9所述的设备,其中所述至少一个第二节点包括多个第二节点,并且其中选择第二加速器资源用于执行所述第一节点的目标作业包括:
从所述多个第二节点各自对应的多个远程处理时延中选择最低远程处理时延;以及
选择所选择的远程处理时延对应的第二节点的第二加速器资源用于执行所述目标作业。
15.根据权利要求9所述的设备,其中所述动作还包括:
通过远程程序调用接口,使所述目标作业使用所选择的所述第二加速器资源被执行。
16.根据权利要求9所述的设备,其中所述第一加速器资源和所述第二加速器资源包括快速辅助技术(QAT)卡。
17.一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括计算机可执行指令,所述计算机可执行指令在被执行时使设备:
在存储系统的第一节点,确定所述第一节点的第一加速器资源的本地处理时延是否超过第一阈值时延;
如果确定所述本地处理时延超过第一阈值时延,确定与存储系统的至少一个第二节点各自对应的至少一个远程处理时延,每个远程处理时延包括相应第二节点的第二加速器资源的处理时延和在所述第一节点与所述相应第二节点之间的往返时间;以及
至少基于所述至少一个远程处理时延,从所述至少一个第二节点的所述第二加速器资源选择第二加速器资源用于执行所述第一节点的目标作业。
18.根据权利要求17所述的计算机程序产品,其中所述第一节点的所述本地处理时延超过所述往返时间。
19.根据权利要求17所述的计算机程序产品,其中所述第一节点与所述至少一个第二节点之间通过高速网络接口连接。
20.根据权利要求17所述的计算机程序产品,其中如果确定所述本地处理时延超过所述第一阈值时延,所述动作还包括:
将所述第一节点的待执行作业的优先级与阈值优先级相比较;
如果所述待执行作业的优先级低于所述阈值优先级,将所述待执行作业确定为所述目标作业;以及
如果所述待执行作业的优先级超过所述阈值优先级,选择所述第一节点的所述第一加速器资源用于执行所述待执行作业。
21.根据权利要求17所述的计算机程序产品,其中所述至少一个第二节点包括多个第二节点,并且其中选择第二加速器资源用于执行所述第一节点的目标作业包括:
将所述多个第二节点各自对应的多个远程处理时延与第二阈值时延相比较;
基于所述比较的结果,从所述多个远程处理时延中确定未超过所述第二阈值时延的远程处理时延;以及
选择所确定的远程处理时延对应的第二节点的第二加速器资源用于执行所述目标作业。
22.根据权利要求17所述的计算机程序产品,其中所述至少一个第二节点包括多个第二节点,并且其中选择第二加速器资源用于执行所述第一节点的目标作业包括:
从所述多个第二节点各自对应的多个远程处理时延中选择最低远程处理时延;以及
选择所选择的远程处理时延对应的第二节点的第二加速器资源用于执行所述目标作业。
23.根据权利要求17所述的计算机程序产品,其中所述动作还包括:
通过远程程序调用接口,使所述目标作业使用所选择的所述第二加速器资源被执行。
24.根据权利要求17所述的计算机程序产品,其中所述第一加速器资源和所述第二加速器资源包括快速辅助技术(QAT)卡。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010987912.8A CN114201273A (zh) | 2020-09-18 | 2020-09-18 | 资源使用方法、设备和计算机程序产品 |
US17/077,434 US11789777B2 (en) | 2020-09-18 | 2020-10-22 | Resource utilization method, electronic device, and computer program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010987912.8A CN114201273A (zh) | 2020-09-18 | 2020-09-18 | 资源使用方法、设备和计算机程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114201273A true CN114201273A (zh) | 2022-03-18 |
Family
ID=80645132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010987912.8A Pending CN114201273A (zh) | 2020-09-18 | 2020-09-18 | 资源使用方法、设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11789777B2 (zh) |
CN (1) | CN114201273A (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106681793A (zh) * | 2016-11-25 | 2017-05-17 | 同济大学 | 一种基于kvm的加速器虚拟化数据处理系统及方法 |
US11290392B2 (en) * | 2017-01-30 | 2022-03-29 | Intel Corporation | Technologies for pooling accelerator over fabric |
US10585717B2 (en) * | 2017-08-24 | 2020-03-10 | International Business Machines Corporation | Hybrid acceleration in a processing environment |
JP2020110926A (ja) * | 2019-01-08 | 2020-07-27 | キヤノン株式会社 | 画像形成装置、画像形成装置の制御方法、画像形成システム、及びプログラム |
US11416295B2 (en) * | 2019-04-30 | 2022-08-16 | Intel Corporation | Technologies for providing efficient access to data in an edge infrastructure |
CN110493360B (zh) * | 2019-09-26 | 2022-08-19 | 重庆大学 | 多服务器下降低系统能耗的移动边缘计算卸载方法 |
-
2020
- 2020-09-18 CN CN202010987912.8A patent/CN114201273A/zh active Pending
- 2020-10-22 US US17/077,434 patent/US11789777B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20220091888A1 (en) | 2022-03-24 |
US11789777B2 (en) | 2023-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3637733B1 (en) | Load balancing engine, client, distributed computing system, and load balancing method | |
CN109697122B (zh) | 任务处理方法、设备及计算机存储介质 | |
EP2701074B1 (en) | Method, device, and system for performing scheduling in multi-processor core system | |
CN108829512B (zh) | 一种云中心硬件加速计算力的分配方法、系统和云中心 | |
CN104102548A (zh) | 任务资源调度处理方法和系统 | |
CN114327843A (zh) | 任务调度方法及装置 | |
CN106571978B (zh) | 数据包捕获方法及装置 | |
CN109729113B (zh) | 管理专用处理资源的方法、服务器系统和计算机程序产品 | |
US10778807B2 (en) | Scheduling cluster resources to a job based on its type, particular scheduling algorithm,and resource availability in a particular resource stability sub-levels | |
US11438271B2 (en) | Method, electronic device and computer program product of load balancing | |
US6012121A (en) | Apparatus for flexible control of interrupts in multiprocessor systems | |
US6256660B1 (en) | Method and program product for allowing application programs to avoid unnecessary packet arrival interrupts | |
CN115167996A (zh) | 调度方法及装置、芯片、电子设备及存储介质 | |
CN111586140A (zh) | 一种数据交互的方法及服务器 | |
CN114625533A (zh) | 分布式任务调度方法、装置、电子设备及存储介质 | |
Lin et al. | {RingLeader}: efficiently Offloading {Intra-Server} Orchestration to {NICs} | |
US20210117237A1 (en) | Method, devices and computer program products for resource usage | |
US11556382B1 (en) | Hardware accelerated compute kernels for heterogeneous compute environments | |
CN114201273A (zh) | 资源使用方法、设备和计算机程序产品 | |
US8869171B2 (en) | Low-latency communications | |
CN113364888B (zh) | 服务调度方法、系统、电子设备及计算机可读存储介质 | |
CN111858019B (zh) | 任务调度方法、装置及计算机可读存储介质 | |
US11663026B2 (en) | Allocation of accelerator resources based on job type | |
CN115878309A (zh) | 资源分配方法、装置、处理核、设备和计算机可读介质 | |
CN116848508A (zh) | 基于强化学习模型调度任务以供计算机执行 |
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 |