CN111666147B - 资源调度方法、设备、系统及中心服务器 - Google Patents

资源调度方法、设备、系统及中心服务器 Download PDF

Info

Publication number
CN111666147B
CN111666147B CN201910172678.0A CN201910172678A CN111666147B CN 111666147 B CN111666147 B CN 111666147B CN 201910172678 A CN201910172678 A CN 201910172678A CN 111666147 B CN111666147 B CN 111666147B
Authority
CN
China
Prior art keywords
request
interval
numbering
resource scheduling
tag value
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.)
Active
Application number
CN201910172678.0A
Other languages
English (en)
Other versions
CN111666147A (zh
Inventor
易建亮
赵伟
颜深根
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Sensetime Intelligent Technology Co Ltd
Original Assignee
Shanghai Sensetime Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Sensetime Intelligent Technology Co Ltd filed Critical Shanghai Sensetime Intelligent Technology Co Ltd
Priority to CN201910172678.0A priority Critical patent/CN111666147B/zh
Priority to PCT/CN2019/112844 priority patent/WO2020177336A1/zh
Priority to JP2020539089A priority patent/JP7174764B2/ja
Priority to SG11202006769YA priority patent/SG11202006769YA/en
Priority to TW108143798A priority patent/TWI747092B/zh
Priority to US16/929,187 priority patent/US20200348977A1/en
Publication of CN111666147A publication Critical patent/CN111666147A/zh
Application granted granted Critical
Publication of CN111666147B publication Critical patent/CN111666147B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5013Request control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开实施例公开了一种资源控制方法、设备、系统及中心服务器,其中,方法包括:接收客户端发送的第一I/O请求;基于从中心服务器获取到的第一编号区间,为第一I/O请求分配请求编号;基于第一I/O请求的请求编号,确定第一I/O请求的标签值;基于第一I/O请求的标签值,调度第一I/O请求,通过请求编号确定标签值,并根据标签值调度第一I/O请求,解决了资源分布不均匀的问题,实现了根据系统并发能力控制I/O请求的数量和并发数。

Description

资源调度方法、设备、系统及中心服务器
技术领域
本公开涉及资源控制技术,尤其是一种资源调度方法、设备、系统及中心服务器。
背景技术
AI深度学习模型训练会涉及多节点多用户并发访问存储资源,为了保证模型训练的速度,除了GPU卡的性能外,IO性能也起着非常关键的作用。然而在实际使用过程中发现,研究人员在使用存储时存在资源分布极度不均匀的情况,即某些用户占据大部分IO资源,导致其他用户训练太慢或无法进行训练,在极端情况下甚至会导致存储系统宕机。
发明内容
本公开实施例提供的一种资源调度技术。
根据本公开实施例的一个方面,提供的一种资源调度方法,包括:
接收客户端发送的第一I/O请求;
基于从中心服务器获取到的第一编号区间,为所述第一I/O请求分配请求编号;
基于所述第一I/O请求的请求编号,确定所述第一I/O请求的标签值;
基于所述第一I/O请求的标签值,调度所述第一I/O请求。
可选地,在本公开上述任一方法实施例中,所述基于从中心服务器获取到的第一编号区间,为所述第一I/O请求分配请求编号,包括:
确定所述第一编号区间中是否存在尚未分配的空闲编号;
响应于所述第一编号区间中存在至少一个空闲编号,将所述至少一个空闲编号中的最小编号作为所述第一I/O请求的请求编号。
可选地,在本公开上述任一方法实施例中,还包括:
响应于所述第一编号区间中不存在空闲编号,向所述中心服务器发送用于请求编号区间的编号请求;
接收所述中心服务器基于所述编号请求发送的第二编号区间,其中,所述第二编号区间与所述第一编号区间间隔至少一个编号区间。
可选地,在本公开上述任一方法实施例中,所述基于从中心服务器获取到的第一编号区间,为所述第一I/O请求分配请求编号,还包括:
响应于所述第一编号区间中不存在空闲编号,基于所述第一编号区间中的最大编号确定所述第一I/O请求的请求编号。
可选地,在本公开上述任一方法实施例中,所述基于所述第一I/O请求的请求编号,确定所述第一I/O请求的标签值,包括:
基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定所述第一I/O请求的标签值,其中,所述第二I/O请求为所述第一I/O请求对应的用户上一次发出的I/O请求。
可选地,在本公开上述任一方法实施例中,所述基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定所述第一I/O请求的标签值,包括:
基于所述第一I/O请求的请求编号与所述第二I/O请求的请求编号之间的差值、所述第二I/O请求的标签值以及当前时间,确定所述第一I/O请求的标签值。
可选地,在本公开上述任一方法实施例中,所述第一I/O请求的标签值包括保留标签值、阈值标签值和权重标签值中的至少一种。
可选地,在本公开上述任一方法实施例中,所述基于所述第一I/O请求的标签值,调度所述第一I/O请求,包括:
基于所述第一I/O请求的标签值,确定所述第一I/O请求在请求队列中的排序;
基于所述第一I/O请求在请求队列中的排序,调度所述第一I/O请求。
根据本公开实施例的另一个方面,提供的一种资源调度方法,应用于中心服务器,包括:
接收第一资源调度设备发出的第一编号请求,所述第一编号请求用于为用户请求编号区间;
基于为第二编号请求分配的第三编号区间,向所述第一资源调度设备发放第一编号区间,其中,所述第三编号请求为所述中心服务器上一次接收到的、第二资源调度设备发出的针对所述用户的编号请求,第一编号区间位于所述第三编号区间之后。
根据本公开实施例的又一个方面,提供的一种资源调度设备,包括:
请求接收单元,用于接收客户端发送的第一I/O请求;
编号区间获取单元,用于基于从中心服务器获取到的第一编号区间,为所述第一I/O请求分配请求编号;
标签值确定单元,用于基于所述第一I/O请求的请求编号,确定所述第一I/O请求的标签值;
资源调度单元,用于基于所述第一I/O请求的标签值,调度所述第一I/O请求。
可选地,在本公开上述任一设备实施例中,所述编号区间获取单元,用于确定所述第一编号区间中是否存在尚未分配的空闲编号;响应于所述第一编号区间中存在至少一个空闲编号,将所述至少一个空闲编号中的最小编号作为所述第一I/O请求的请求编号。
可选地,在本公开上述任一设备实施例中,所述编号区间获取单元,还用于响应于所述第一编号区间中不存在空闲编号,向所述中心服务器发送用于请求编号区间的编号请求;接收所述中心服务器基于所述编号请求发送的第二编号区间,其中,所述第二编号区间与所述第一编号区间间隔至少一个编号区间。
可选地,在本公开上述任一设备实施例中,所述编号区间获取单元,还用于响应于所述第一编号区间中不存在空闲编号,基于所述第一编号区间中的最大编号确定所述第一I/O请求的请求编号。
可选地,在本公开上述任一设备实施例中,所述标签值确定单元,用于基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定所述第一I/O请求的标签值,其中,所述第二I/O为所述第一I/O请求对应的用户上一次发出的I/O请求。
可选地,在本公开上述任一设备实施例中,所述标签值确定单元,用于基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值、所述第二I/O请求的标签值以及当前时间,确定所述第一I/O请求的标签值。
可选地,在本公开上述任一设备实施例中,所述第一I/O请求的标签值包括保留标签值、阈值标签值和权重标签值中的至少一种。
可选地,在本公开上述任一设备实施例中,所述资源调度单元,用于基于所述第一I/O请求的标签值,确定所述第一I/O请求在请求队列中的排序;基于所述第一I/O请求在请求队列中的排序,调度所述第一I/O请求。
根据本公开实施例的还一个方面,提供的一种中心服务器,包括:
请求接收单元,用于接收第一资源调度设备发出的第一编号请求,所述第一编号请求用于为用户请求编号区间;
编号区间发放单元,用于基于为第二编号请求分配的第三编号区间,向所述第一资源调度设备发放第一编号区间,其中,所述第三编号请求为所述中心服务器上一次接收到的、第二资源调度设备发出的针对所述用户的编号请求,第一编号区间位于所述第三编号区间之后。
根据本公开实施例的再一个方面,提供的一种资源调度系统,包括:
多个资源调度设备和中心服务器,其中,
所述资源调度设备,用于向所述中心服务器发出用于为用户请求编号区间的第一编号请求;
所述中心服务器,用于基于所述第一编号请求和上一次为所述用户发放的第三编号区间,向所述资源调度设备发放第一编号区间,其中,第一编号区间位于所述第三编号区间之后。
可选地,在本公开上述任一系统实施例中,所述资源调度设备还用于:
接收所述客户端发送的第一I/O请求;
基于所述第一编号区间,为所述第一I/O请求分配请求编号;
基于所述第一I/O请求的请求编号,调度所述第一I/O请求。
可选地,在本公开上述任一系统实施例中,所述资源调度设备在基于所述第一I/O请求的请求编号,调度所述第一I/O请求时,用于所述资源调度设备基于所述第一I/O请求的请求编号,确定所述第一I/O请求的标签值;所述资源调度设备基于所述第一I/O请求的标签值,调度所述第一I/O请求。
可选地,在本公开上述任一系统实施例中,所述资源调度设备在基于所述第一I/O请求的请求编号,确定所述第一I/O请求的标签值时,用于基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定所述第一I/O请求的标签值,其中,所述第二I/O为所述第一I/O请求对应的用户上一次发出的I/O请求。
可选地,在本公开上述任一系统实施例中,所述资源调度设备在基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定所述第一I/O请求的标签值时,还用于基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值、所述第二I/O请求的标签值以及当前时间,确定所述第一I/O请求的标签值。
可选地,在本公开上述任一系统实施例中,所述资源调度设备在基于所述第一编号区间,为所述第一I/O请求分配请求编号时,用于确定所述第一编号区间中是否存在尚未分配的空闲编号;响应于所述第一编号区间中存在至少一个空闲编号,所述资源调度设备将所述至少一个空闲编号中的最小编号作为所述第一I/O请求的请求编号。
可选地,在本公开上述任一系统实施例中,所述资源调度设备还用于:
响应于所述第一编号区间中不存在空闲编号,所述资源调度设备向所述中心服务器发送用于请求编号区间的第二编号请求;
接收所述中心服务器基于所述第二编号请求发送的第二编号区间,其中,所述第二编号区间与所述第一编号区间间隔至少一个编号区间。
可选地,在本公开上述任一系统实施例中,所述资源调度设备在基于所述第一编号区间,为所述第一I/O请求分配请求编号时,还用于响应于所述第一编号区间中不存在空闲编号,所述资源调度设备基于所述第一编号区间中的最大编号,确定所述第一I/O请求的请求编号。
可选地,在本公开上述任一系统实施例中,所述资源调度设备为网关实例。
根据本公开实施例的还一个方面,提供的一种电子设备,其特征在于,包括:存储器,用于存储可执行指令;
以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成如上任意一项所述资源调度方法的操作。
根据本公开实施例的再一个方面,提供的一种计算机可读存储介质,用于存储计算机可读取的指令,所述指令被执行时执行如上任意一项所述资源调度方法的操作。
根据本公开实施例的还一个方面,提供的一种计算机程序产品,包括计算机可读代码,其特征在于,当所述计算机可读代码在设备上运行时,所述设备中的处理器执行用于实现如上任意一项所述资源调度方法的指令。
根据本公开实施例的再一个方面,提供的另一种计算机程序产品,用于存储计算机可读指令,所述指令被执行时使得计算机执行上述任一可能的实现方式中所述资源调度方法的操作。
在一个可选实施方式中,所述计算机程序产品具体为计算机存储介质,在另一个可选实施方式中,所述计算机程序产品具体为软件产品,例如SDK等。
根据本公开实施例还提供了另一种资源调度方法、设备、系统及中心服务器,其中,接收第一资源调度设备发出的第一编号请求,第一编号请求用于为用户请求编号区间;基于为第二编号请求分配的第三编号区间,向第一资源调度设备发放第一编号区间,其中,第三编号请求为中心服务器上一次接收到的、第二资源调度设备发出的针对用户的编号请求,第一编号区间位于第三编号区间之后。
基于本公开上述实施例提供的一种资源调度方法、设备、系统及中心服务器,接收客户端发送的第一I/O请求;基于从中心服务器获取到的第一编号区间,为第一I/O请求分配请求编号;基于第一I/O请求的请求编号,确定第一I/O请求的标签值;基于第一I/O请求的标签值,调度第一I/O请求,通过请求编号确定标签值,并根据标签值调度第一I/O请求,解决了资源分布不均匀的问题,实现了根据系统并发能力控制I/O请求的数量和并发数。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同描述一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1为本公开实施例提供的资源调度方法的一个流程示意图。
图2为本公开实施例提供的资源调度方法的另一流程示意图。
图3为本公开实施例提供的资源调度设备的一个结构示意图。
图4为本公开实施例提供的资源调度方法的又一流程示意图。
图5为本公开实施例提供的中心服务器的结构示意图。
图6为本公开实施例提供的资源调度系统的结构示意图。
图7为本公开实施例提供的资源调度系统的交互流程示意图。
图8为本公开实施例提供的资源调度系统的一个应用示例结构图。
图9为适于用来实现本公开实施例的终端设备或服务器的电子设备的结构示意图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为了提升资源并发访问能力,对象存储系统通常会部署多个网关实例来给用户提供存储服务。然而多个网关实例是独立提供存储服务的,相互之间没有通信,所以很难实现对用户进行有效控制,比如对用户进行IOPS限流、限速场景等。
图1为本公开实施例提供的资源调度方法的一个流程示意图。
步骤110,接收客户端发送的第一I/O请求。
可选地,第一I/O请求可以是由客户端发出的,该第一I/O请求可以是请求对资源进行操作,可选地,客户端发送的第一I/O请求是用户通过客户端发出的,即,发出的第一I/O请求是为用户请求资源;其I/O请求的操作类型可包括但不限于:获取文件、查询文件、上传文件等。
在一个可选的实施例中,在接收第一I/O请求之后,还可以包括:
对至少一个第一I/O请求进行解析,获得至少一个发出第一I/O请求的客户端对应的用户基本信息。
其中,每个用户对应至少一个第一I/O请求。可选地,用户基本信息可以包括但不限于:发出第一I/O请求的用户ip地址信息、登录id、用户名及秘钥、I/O请求操作类型信息等。可选地,可以由负载均衡软件层接收至少一个第一I/O请求,并根据各网关实例负载情况,选择其中一个实例处理第一I/O请求;I/O请求到达网关实例,解析http头部(header)获得用户基本信息,获得用户基本信息的目的在于对I/O请求进行区分和分析,当获取I/O请求所对应的资源后,按照用户地址信息反馈获得的资源,即将分配的资源反馈到第一I/O请求对应的用户地址信息对应的客户端。
步骤120,基于从中心服务器获取到的第一编号区间,为第一I/O请求分配请求编号。
其中,可选地,每个第一I/O请求对应一个请求编号。
可选地,可通过中心服务器为第一I/O请求分配编号,从中心服务器获取一个第一编号区间(包括设定数量的编号,例如,第一编号区间<21,40>包括20个编号为:21到40)对接收到的第一I/O请求进行编号,例如,将第一编号区间中的一个空闲编号(未进行分配的编号)分配给一个第一I/O请求,而当第一I/O请求到达时,如果没有空闲编号,将自动分配本地临时编号(例如,分配编号为用户上一次I/O请求的编号加1),同时向中心服务器请求获得新的编号区间,当下一批编号区间到达时可直接采用新的编号区间为I/O请求分配请求编号,减少了编号等待时间,提高了处理效率。
步骤130,基于第一I/O请求的请求编号,确定第一I/O请求的标签值。
可选地,可采用mClock算法中介绍的方法获取第一I/O请求的标签值,其中,mClock算法的基本思路是通过如下三元组(本公开实施例可通过三个标签,例如,至少一种标签包括保留标签(对应Reservation)、阈值标签(对应Limit)和权重标签(对应Shares))结合相应的调度实现多个维度的有效控制,例如:
Reservation:说明需要保留性能的绝对数值的限制,比如限制IOPS 250/s。此类方式在系统带宽、IOPS非超销情况下是很常用的策略。
Limit:此类限制也是对性能绝对数值限制,限制比如IOPS使用的上限,比如用于防止一些IO Intensive Application对在线业务造成影响,比如virus scanners、virtual-disk migrations、backup等等。
Shares:使用相对比例控制(权重)的方式来控制对底层资源的申请和使用。
与mClock算法对当前集群中的虚拟机(VM)访问后端单个服务能力实体实施控制不同,本公开实例实现在用户多节点登录场景下实现对后端多个服务能力实体实现上述3个维度的有效控制。
步骤140,基于第一I/O请求的标签值,调度第一I/O请求。
可选地,通过第一I/O请求对应的标签值的大小对第一I/O请求进行排序,根据排序调度第一I/O请求。例如,按照标签值从大到小对第一I/O请求进行排序,再按序为发出第一I/O请求的客户端分配所请求的资源。
基于本公开上述实施例提供的一种资源调度方法,接收客户端发送的第一I/O请求;基于从中心服务器获取到的第一编号区间,为第一I/O请求分配请求编号;基于第一I/O请求的请求编号,确定第一I/O请求的标签值;基于第一I/O请求的标签值,调度第一I/O请求,通过请求编号确定标签值,并根据标签值调度第一I/O请求,解决了资源分布不均匀的问题,实现了根据系统并发能力控制I/O请求的数量和并发数。
图2为本公开实施例提供的资源调度方法的另一流程示意图。
步骤210,接收客户端发送的第一I/O请求。
步骤220,确定第一编号区间中是否存在尚未分配的空闲编号。
当需要为第一I/O请求分配编号时,首先判断当前设备中从中心服务器获取到的第一编号区间是否还存在尚未分配的空闲编号,空闲编号是指在第一编号区间中未分配给I/O请求作为请求编号的编号,例如,第一编号区间包括20个编号,具体为<21,40>,当其中21-30都已经分配给第一I/O请求作为请求编号之后,31-40即为该第一编号区间中的空闲编号,当接收到一个第一I/O请求时,将编号31分配给该第一I/O请求作为请求编号。
步骤230,响应于第一编号区间中存在至少一个空闲编号,将至少一个空闲编号中的最小编号作为第一I/O请求的请求编号。
在第一编号区间中包括设定数量的编号,其中每个编号的大小不同,例如,第一编号区间包括20个编号,具体为<21,40>,其中最小编号为21,最大编号为40;可选地,在第一编号区间中的编号分配给第一I/O请求时,是按照编号大小从小到大进行分配的,例如,当上述例子中21-30的编号都已经分配给第一I/O请求作为请求编号之后,31-40即为该第一编号区间中的空闲编号,当接收到一个第一I/O请求时,将编号31分配给该第一I/O请求作为请求编号。
步骤240,基于第一I/O请求的请求编号,确定第一I/O请求的标签值。
获得请求编号之后,可选地,可通过mClock算法计算获得第一I/O请求的标签值,或通过其他方式以请求编号为基础获得第一I/O请求的标签值,本公开实施例不限制获得第一I/O请求的标签值的具体方式。
步骤250,基于第一I/O请求的标签值,调度第一I/O请求。
本公开实施例通过已经获取到本地的第一编号区间为接收到的第一I/O请求分配请求编号,以实现快速获取与客户端发出的上一次第一I/O请求的请求编号相关联的编号作为请求编号,实现对每个客户端(用户)进行资源调配,有效控制用户请求数和并发数。
在一个或多个可选实施例中,在步骤220之后,还可以包括:响应于第一编号区间中不存在空闲编号,向中心服务器发送用于请求编号区间的编号请求;
接收中心服务器基于编号请求发送的第二编号区间。
当本地从中心服务器获取到的第一编号区间中不存在空间编号时(将第一编号区间中所有编号都分配给I/O请求作为请求编号),此时,接收到第一I/O请求,需向中心服务器发送用于请求编号区间的编号请求,中心服务器接收编号请求后,会根据编号请求发送包括预设数量的编号的第二编号区间到本地设备中,其中,第二编号区间与第一编号区间间隔至少一个编号区间,由于在请求获取第二编号区间的等待过程中,为了提高处理效率,会在本地为接收的第一I/O请求分配请求编号,因此,需要为这些请求编号预留可用空间,本公开实施例将第二编号区间与第一编号区间之间预留至少一个编号区间作为本地可分配编号的应用空间。可选地,响应于第一编号区间中不存在空闲编号,基于第一编号区间中的最大编号确定第一I/O请求的请求编号。例如,第一编号区间为<21,40>,当第一编号区间中的编号都已经分配为请求编号,接收第一I/O请求后,向中心服务器请求第二编号区间的同时,为接收的第一I/O请求从编号41开始分配编号,可选地,从中心服务器获得的第二编号区间为<61,80>,包括的编号为61-80。
在一个或多个可选的实施例中,步骤130包括:
基于第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定第一I/O请求的标签值。
其中,第二I/O请求为第一I/O请求对应的用户上一次发出的I/O请求。
可选地,为了确定每个第一I/O请求对应的标签值,需要分别确定每个第一I/O请求的编号差值,即同一用户上次发出的第二I/O请求对应的请求编号与该用户本次发出的第一I/O请求对应的请求编号之间的差值,之后根据该差值对该第一I/O请求的标签值进行计算,通过以用户为单位对其发出的I/O请求进行计算标签值,实现了对每个用户请求数量的控制,减少了由于部分用户大量请求而导致的其他用户无法获得资源的问题。
可选地,基于第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定第一I/O请求的标签值,包括:
基于第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值、第二I/O请求的标签值以及当前时间,确定第一I/O请求的标签值。
可选地,第一I/O请求的标签值包括但不限于保留标签值、阈值标签值和权重标签值中的至少一种。获得第一I/O请求的标签值的过程可以包括:基于第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值、第二I/O请求的标签值、用户对应的保留标签的预存标签值、以及获取第一I/O请求的时间(即,当前时间),计算获得第一I/O请求对应的保留标签的标签值;
基于第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值、第二I/O请求的标签值、用户对应的阈值标签的预存标签值、以及获取第一I/O请求的时间,计算获得第一I/O请求对应的阈值标签的标签值;
基于第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值、第二I/O请求的标签值、用户对应的权重标签的预存标签值、以及获取第一I/O请求的时间,计算获得第一I/O请求对应的权重标签的标签值。
例如,可采用以下公式获得保留标签值、阈值标签值和权重标签值:
Figure GDA0003611019800000101
Figure GDA0003611019800000102
Figure GDA0003611019800000103
上述公式中,
Figure GDA0003611019800000104
表示第i个用户的r请求(对应第一I/O请求)的保留标签值,
Figure GDA0003611019800000105
表示第i个用户的r请求(对应第一I/O请求)的阈值标签值,
Figure GDA0003611019800000106
表示第i个用户的r请求(对应第一I/O请求)的权重标签值;ri、li和pi分别指第i个用户对应的保留标签的预存标签值、阈值标签的预存标签值和权重标签的预存标签值,t表示当前时间;counter指用户i的上一个I/O请求(对应第二I/O请求)与当前请求(对应第一I/O请求)的请求编号的差值。通过上述公式即可获得每个第一I/O请求对应的三种标签的标签值。
在一个或多个可选的实施例中,步骤140可以包括:
基于第一I/O请求的标签值,确定第一I/O请求在请求队列中的排序;
基于第一I/O请求在请求队列中的排序,调度第一I/O请求。
可选地,实现基于标签值的排序和对第一I/O请求的调度可基于以下伪代码实现:
Figure GDA0003611019800000107
Figure GDA0003611019800000111
可选地,由于标签值包括保留标签值、阈值标签值和权重标签值中的至少一种,因此,对于第一I/O请求在请求队列中的排序,可选地,包括以下至少一种:获取保留标签值小于当前时间的至少一个第一I/O请求,按照保留标签值对获取的至少一个第一I/O请求进行排序,获得第一序列;
获取阈值标签值小于当前时间的至少一个第一I/O请求,按照获取的至少一个第一I/O请求对应的至少一个权重标签值对该获取的至少一个第一I/O请求进行排序,获得第二序列;
根据第一序列和第二序列为至少一个第一I/O请求分配所I/O请求的资源。
可选地,按照保留标签值从小到大的顺序对第一I/O请求进行排序,获得第一序列;按照权值标签值从小到大的顺序对第一I/O请求进行排序,获得第二序列。
可选地,根据第一序列和第二序列为至少一个第一I/O请求分配所I/O请求的资源,包括:
从第一序列中按序获取预设数量的第一I/O请求,按照预设数量的第一I/O请求在第一序列中的排序为预设数量的第一I/O请求分配所请求的资源;
获取第一序列中的剩余第一I/O请求在第二序列中的排序,按照预设数量的第一I/O请求在第二序列中的排序为预设数量的第一I/O请求分配所请求的资源。
可选地,本公开实施例中后端服务实体采用mClock算法实现资源的分配,基于三种标签获得两个序列,并按照两个序列对资源进行分配,例如通过以下实现:
mClock实现资源调度的过程,可以包括但不限于如下几个环节:
通过给所有I/O请求打三个维度的标签(tag),三个维度的标签在本公开实施例中包括保留标签(ri对应Reservation tag)、阈值标签(li对应Limit tag)和权重标签(wi对应Share or weight tag)
其中,Reservation:首先尽最大努力优先保障Reservation,比如确保某个用户能够保障IOPS 1w以支持训练业务,(PS:为了保障所有用户的Reservation都能够得到保障,底层系统能够提供的资源综合能力必须大于所有用户需要的Reservation之和);Limit&Share(如上weight tag):在确保不超过Limit情况下,再进行统一按照Share比例进行资源分配。
结合三个维度的标签值和调度器的切换实现控制目标。
对于上述公式(1)、(2)、(3)中为什么取Max:避免用户idle情况下产生idle积分现象。比如前一个I/O请求很早来了,后面的I/O请求的R值若为
Figure GDA0003611019800000121
显然很容易导致
Figure GDA0003611019800000122
可能在某些情况下远远小于current-Time,从调度优先级来说,调度器会优先调度R值最小的I/O请求,这会导致其他刚从idle到Active的用户的R值I/O请求远远大于之前的用户,从而导致刚active机器的I/O请求饥饿。
Limit&share:Limit值越大,在整个队列中的密度越大,占比越多。但是会按照share tag的优先级确保不超过Limit的I/O请求按照share的比重进行比例调度。
在一个可选示例中,本公开实施例提供的资源控制方法可结合以下几个部分实现,实现部分可以包括但不限于:应用层(多机多卡训练)、中心服务器(负责管理请求编号,每次接收到网关实例的编号申请则返回一个连续的编号区间,如<1,100><101,200>…)、多网关实例层、后端存储层等。
通过上述几个部分实现资源控制的过程可以包括:应用层为分布式深度学习模型训练,分为单机多卡、多机多卡场景,负责发起IOI/O请求(对应本公开的第一I/O请求);
IOI/O请求到达负载均衡软件层,根据各网关实例负载情况,选择其中一个实例处理此I/O请求;
I/O请求到达网关实例,解析http header获得用户鉴权信息,并判断当前用户是否还有请求编号,如有则消耗一个编号;如无则激活负责获取编号的后台线程,向中心服务器发起I/O请求获取下一批编号区间,为了提升性能,此时I/O请求不会等待下一批编号到来,而是直接返回一个临时编号;
拿到编号后,给用户I/O请求进行打标签操作(R保留标签、L阈值标签、P权重标签),完成后将I/O请求转发给mClock排序队列;
mClock排序队列拿到I/O请求后根据I/O请求的标签值来调整队列顺序;
I/O请求处理线程池向mClock队列取I/O请求后,解析I/O请求,并根据I/O请求类型提交后台存储层执行;
后台存储层处理完毕,将处理结果反馈对象存储网关实例,由网关实例反馈应用层程序。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图3为本公开实施例提供的资源调度设备的结构示意图。该实施例的设备可用于实现本公开上述各方法实施例。如图3所示,该实施例的设备包括:
请求接收单元31,用于接收客户端发送的第一I/O请求。
编号区间获取单元32,用于基于从中心服务器获取到的第一编号区间,为第一I/O请求分配请求编号。
标签值确定单元33,用于基于第一I/O请求的请求编号,确定第一I/O请求的标签值。
资源调度单元34,用于基于第一I/O请求的标签值,调度第一I/O请求。
基于本公开上述实施例提供的一种资源调度设备,接收客户端发送的第一I/O请求;基于从中心服务器获取到的第一编号区间,为第一I/O请求分配请求编号;基于第一I/O请求的请求编号,确定第一I/O请求的标签值;基于第一I/O请求的标签值,调度第一I/O请求,通过请求编号确定标签值,并根据标签值调度第一I/O请求,解决了资源分布不均匀的问题,实现了根据系统并发能力控制I/O请求的数量和并发数。
可选地,编号区间获取单元32,用于确定第一编号区间中是否存在尚未分配的空闲编号;响应于第一编号区间中存在至少一个空闲编号,将至少一个空闲编号中的最小编号作为第一I/O请求的请求编号。
可选地,编号区间获取单元32,还用于响应于第一编号区间中不存在空闲编号,向中心服务器发送用于请求编号区间的编号请求;接收中心服务器基于编号请求发送的第二编号区间,其中,第二编号区间与第一编号区间间隔至少一个编号区间。
可选地,编号区间获取单元32,还用于响应于第一编号区间中不存在空闲编号,基于第一编号区间中的最大编号确定第一I/O请求的请求编号。
在一个或多个可选的实施例中,标签值确定单元33,用于基于第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定第一I/O请求的标签值。
其中,第二I/O为所述第一I/O请求对应的用户上一次发出的I/O请求。
可选地,为了确定每个第一I/O请求对应的标签值,需要分别确定每个第一I/O请求的编号差值,即同一用户上次发出的第二I/O请求对应的请求编号与该用户本次发出的第一I/O请求对应的请求编号之间的差值,之后根据该差值对该第一I/O请求的标签值进行计算,通过以用户为单位对其发出的I/O请求进行计算标签值,实现了对每个用户请求数量的控制,减少了由于部分用户大量请求而导致的其他用户无法获得资源的问题。
可选地,标签值确定单元33,用于基于第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值、第二I/O请求的标签值以及当前时间,确定第一I/O请求的标签值。
可选地,第一I/O请求的标签值包括保留标签值、阈值标签值和权重标签值中的至少一种。
可选地,资源调度单元34,用于基于第一I/O请求的标签值,确定第一I/O请求在请求队列中的排序;基于第一I/O请求在请求队列中的排序,调度第一I/O请求。
图4为本公开实施例提供的资源调度方法的又一流程示意图。可选地,该方法可以应用于中心服务器,如图4所示,该方法包括:
步骤410,接收第一资源调度设备发出的第一编号请求。
其中,第一编号请求用于为客户端请求编号区间。
可选地,该第一编号请求是由于第一资源调度设备从客户端接收到I/O请求,需要为接收到的I/O请求分配请求编号,因此,需要向中心服务器请求获得编号区间,以实现基于获得的编号区间为I/O请求分配请求编号,以为用户调度资源。
步骤420,基于为第二编号请求分配的第三编号区间,向第一资源调度设备发放第一编号区间。
其中,第三编号请求为中心服务器上一次接收到的、第二资源调度设备发出的针对用户的编号请求,第一编号区间位于第三编号区间之后。
可选地,本公开实施例提供的中心服务器对应多个资源调度设备(如,第一资源调度设备和第二资源调度设备等),当为之前发出编号请求的第二资源调度设备分配了第三编号区间之后,在为当前发出编号请求的第一资源调度设备分配第一编号区间时,可在第三编号区间的基础上进行累加,获得第一编号区间的具体数值范围。例如,第三编号区间为<1,20>,第一编号区间为<21,40>。
可选地,在向第一资源调度设备发放第一编号区间之前,还对资源调度设备获取用户的总编号数,其中,用户的总编号数可基于用户的服务质量(Quality of Service,QoS)等信息确定的。
可选地,获得用户的总编号数之后,根据用户的总编号数确定向第一资源调度设备发送的第一编号区间中包括的编号数,即根据用户的总编号数确定本次向该用户发送的编号数,每次向用户发送的编号数小于总编号数,实现了根据系统并发能力,有效控制用户请求数和并发数,减少了系统因为压力大而崩溃、宕机的现象。
本公开实施例提供的资源调度方法,通过中心服务器接收资源调度设备发出的第一编号请求,为资源调度设备分发包括预设数量编号的编号区间,以供资源调度设备为其接收到的I/O请求分配请求编号,以实现对多个资源调度设备的资源调度。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图5为本公开实施例提供的中心服务器的结构示意图。该实施例的中心服务器可用于实现本公开上述各方法实施例。如图5所示,该实施例的中心服务器包括:
请求接收单元51,用于接收第一资源调度设备发出的第一编号请求。
其中,第一编号请求用于为用户请求编号区间。
编号区间发放单元52,用于基于为第二编号请求分配的第三编号区间,向第一资源调度设备发放第一编号区间。
其中,第三编号请求为中心服务器上一次接收到的、第二资源调度设备发出的针对用户的编号请求,第一编号区间位于第三编号区间之后。
本公开实施例提供的中心服务器,接收资源调度设备发出的第一编号请求,为资源调度设备分发包括预设数量编号的编号区间,以供资源调度设备为其接收到的I/O请求分配请求编号,以实现对多个资源调度设备的资源调度。
图6为本公开实施例提供的资源调度系统的结构示意图。该资源调度系统包括:
多个资源调度设备61和中心服务器62,其中,
资源调度设备61,用于向中心服务器发出用于为用户请求编号区间的第一编号请求。
可选地,本公开实施例采用的资源调度设备61可以为上述任意一项实施例提供的资源调度设备,可实现上述图1或2所示实施例提供的资源调度方法,本公开实施例不限制资源调度设备61的具体类型及其应用的方法。本公开实施例为了实现通过资源调度设备61对用户的请求进行调度,向中心服务器62请求获取编号区间,以获得的编号区间为用户进行编号。
中心服务器62,用于基于第一编号请求和上一次为用户发放的第三编号区间,向资源调度设备发放第一编号区间。
其中,第一编号区间位于第三编号区间之后。
可选地,本公开实施例采用的中心服务器62可以为上述任意一项实施例提供的中心服务器,可实现上述图3所示实施例提供的资源调度方法,本公开实施例不限制中心服务器62的具体类型及其应用的方法。可选地,中心服务器62为用户本次发放的第一编号区间中的编号号码,是基于上一次为用户发放的第三编号区间的编号号码确定的,例如,上一次获取的第三编号区间是<1,100>,本次获得的第一编号区间可能是<301,400>,第一编号区间位于第三编号区间之后,第一编号区间与第三编号区间之间不一定连续。
基于本公开上述实施例提供的一种资源调度系统,通过中心服务器为资源调度设备发放编号区间的方式,解决了由于多个网关实例是独立提供存储服务的,相互之间没有通信,很难实现对用户进行有效控制的问题,通过编号区间可以实现对用户的请求数和并发数进行控制,解决了资源分布不均匀的问题。
可选地,资源调度设备61还用于:
接收客户端发送的第一I/O请求;
基于第一编号区间,为第一I/O请求分配请求编号;
基于第一I/O请求的请求编号,调度第一I/O请求。
可选地,资源调度设备61在基于第一I/O请求的请求编号,调度第一I/O请求时,用于资源调度设备基于第一I/O请求的请求编号,确定第一I/O请求的标签值;资源调度设备基于第一I/O请求的标签值,调度第一I/O请求。
可选地,资源调度设备61在基于第一I/O请求的请求编号,确定第一I/O请求的标签值时,用于基于第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定第一I/O请求的标签值,其中,第二I/O为第一I/O请求对应的用户上一次发出的I/O请求。
可选地,资源调度设备61在基于第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定第一I/O请求的标签值时,还用于基于第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值、第二I/O请求的标签值以及当前时间,确定第一I/O请求的标签值。
可选地,资源调度设备61在基于第一编号区间,为第一I/O请求分配请求编号时,用于确定第一编号区间中是否存在尚未分配的空闲编号;响应于第一编号区间中存在至少一个空闲编号,资源调度设备将至少一个空闲编号中的最小编号作为第一I/O请求的请求编号。
可选地,资源调度设备61还用于:响应于第一编号区间中不存在空闲编号,资源调度设备向中心服务器发送用于请求编号区间的第二编号请求;
接收中心服务器基于第二编号请求发送的第二编号区间,其中,第二编号区间与第一编号区间间隔至少一个编号区间。
可选地,资源调度设备61在基于第一编号区间,为第一I/O请求分配请求编号时,还用于响应于第一编号区间中不存在空闲编号,资源调度设备基于第一编号区间中的最大编号,确定第一I/O请求的请求编号。
图7为本公开实施例提供的资源调度系统的交互流程示意图。如图7所示,在本公开实施例中,资源调度设备61可以为网关实例。
在该实施例中,还包括接收用户发出的第一I/O请求的客户端。客户端、网关实例和中心服务器的交互流程包括:
网关实例发送为用户请求编号区间的第一编号请求,并将该第一编号请求发送给中心服务器;
中心服务器基于第一编号请求和上一次为该用户发放的第三编号区间确定第一编号区间,并将第一编号区间反馈给网关实例;
网关实例接收第一编号区间;
客户端将第一I/O请求发送给网关实例;
网关实例接收第一I/O请求,基于第一编号区间为第一I/O请求分配编号,并基于分配的编号确定第一I/O请求的标签值,基于第一I/O请求的标签值实现对第一I/O请求的调度。
图8为本公开实施例提供的资源调度系统的一个应用示例结构图。如图8所示,用户提交单机多卡、多机多卡任务并发起I/O请求,对象存储网关(对应资源调度设备)接收I/O请求后,判断当前编号区间是否已用完(即,是否还包括空闲编号);若还有编号(即,包括空闲编号),则获取一个编号(此时当前I/O请求的编号与上一次I/O请求的编号之间的计数差值为1),之后返回当前I/O请求与上一次I/O请求之间的计数差值,并打标签<保留标签(reservation),阈值标签(limit),权重标签(weight)>;若无剩余编号,则激活后台线程去请求中心服务器来获取编号区间(此时获取的编号区间与之前获取的编号区间不一定连续,如之前区间是<1,100>,现在获取的区间是<301,400>,当前I/O请求的编号301与上一个I/O请求的编号100的差值为201),之后返回当前I/O请求与上一次I/O请求之间的计数差值,并根据公式(1)、(2)、(3)分别打标签<保留标签(reservation),阈值标签(limit),权重标签(weight)>。
将打完标签的I/O请求推送(push)到队列中根据标签值进行排序;I/O请求处理线程池向队列中获取I/O请求,并提交后台存储层处理,后台存储层处理完毕后将执行结果反馈应用层。
根据本公开实施例的另一个方面,提供的一种电子设备,包括:存储器,用于存储可执行指令;
以及处理器,用于与存储器通信以执行可执行指令从而完成如上任意一实施例提供的资源调度方法的操作。
根据本公开实施例的另一个方面,提供的一种计算机可读存储介质,用于存储计算机可读取的指令,指令被执行时执行如上任意一实施例提供的资源调度方法的操作。
根据本公开实施例的另一个方面,提供的一种计算机程序产品,包括计算机可读代码,当计算机可读代码在设备上运行时,设备中的处理器执行用于实现如上任意一实施例提供的资源调度方法的指令。
根据本公开实施例的再一个方面,提供的另一种计算机程序产品,用于存储计算机可读指令,指令被执行时使得计算机执行上述任一实施例提供的资源调度方法的操作。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选例子中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选例子中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
根据本公开实施例还提供了资源调度方法、设备、系统以及中心服务器,其中,接收客户端发送的第一I/O请求;基于从中心服务器获取到的第一编号区间,为第一I/O请求分配请求编号;基于第一I/O请求的请求编号,确定第一I/O请求的标签值;基于第一I/O请求的标签值,调度第一I/O请求,通过请求编号确定标签值,并根据标签值调度第一I/O请求。
应理解,本公开实施例中的“第一”、“第二”等术语仅仅是为了区分,而不应理解成对本公开实施例的限定。
还应理解,在本公开中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
本公开实施例还提供了一种电子设备,例如可以是移动终端、个人计算机(PC)、平板电脑、服务器等。下面参考图9,其示出了适于用来实现本公开实施例的终端设备或服务器的电子设备900的结构示意图:如图9所示,电子设备900包括一个或多个处理器、通信部等,所述一个或多个处理器例如:一个或多个中央处理单元(CPU)901,和/或一个或多个图像处理器(GPU)913等,处理器可以根据存储在只读存储器(ROM)902中的可执行指令或者从存储部分908加载到随机访问存储器(RAM)903中的可执行指令而执行各种适当的动作和处理。通信部912可包括但不限于网卡,所述网卡可包括但不限于IB(Infiniband)网卡。
处理器可与只读存储器902和/或随机访问存储器903中通信以执行可执行指令,通过总线904与通信部912相连、并经通信部912与其他目标设备通信,从而完成本公开实施例提供的任一项方法对应的操作,例如,接收客户端发送的第一I/O请求;基于从中心服务器获取到的第一编号区间,为第一I/O请求分配请求编号;基于第一I/O请求的请求编号,确定第一I/O请求的标签值;基于第一I/O请求的标签值,调度第一I/O请求,通过请求编号确定标签值,并根据标签值调度第一I/O请求。
此外,在RAM 903中,还可存储有装置操作所需的各种程序和数据。CPU901、ROM902以及RAM903通过总线904彼此相连。在有RAM903的情况下,ROM902为可选模块。RAM903存储可执行指令,或在运行时向ROM902中写入可执行指令,可执行指令使中央处理单元901执行上述通信方法对应的操作。输入/输出(I/O)接口905也连接至总线904。通信部912可以集成设置,也可以设置为具有多个子模块(例如多个IB网卡),并在总线链接上。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
需要说明的,如图9所示的架构仅为一种可选实现方式,在具体实践过程中,可根据实际需要对上述图9的部件数量和类型进行选择、删减、增加或替换;在不同功能部件设置上,也可采用分离设置或集成设置等实现方式,例如GPU913和CPU901可分离设置或者可将GPU913集成在CPU901上,通信部可分离设置,也可集成设置在CPU901或GPU913上,等等。这些可替换的实施方式均落入本公开公开的保护范围。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,计算机程序包含用于执行流程图所示的方法的程序代码,程序代码可包括对应执行本公开实施例提供的方法步骤对应的指令,例如,接收客户端发送的第一I/O请求;基于从中心服务器获取到的第一编号区间,为第一I/O请求分配请求编号;基于第一I/O请求的请求编号,确定第一I/O请求的标签值;基于第一I/O请求的标签值,调度第一I/O请求,通过请求编号确定标签值,并根据标签值调度第一I/O请求。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本公开的方法中限定的上述功能的操作。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。

Claims (23)

1.一种资源调度方法,其特征在于,包括:
接收客户端发送的第一I/O请求;
基于从中心服务器获取到的第一编号区间,为所述第一I/O请求分配请求编号;包括:响应于所述第一编号区间中不存在空闲编号,向所述中心服务器发送用于请求编号区间的编号请求,并在本地基于所述第一编号区间中的最大编号确定所述第一I/O请求的请求编号;
基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定所述第一I/O请求的标签值;其中,所述第二I/O请求为所述第一I/O请求对应的用户上一次发出的I/O请求;
基于所述第一I/O请求的标签值,调度所述第一I/O请求。
2.根据权利要求1所述的方法,其特征在于,所述基于从中心服务器获取到的第一编号区间,为所述第一I/O请求分配请求编号,包括:
确定所述第一编号区间中是否存在尚未分配的空闲编号;
响应于所述第一编号区间中存在至少一个空闲编号,将所述至少一个空闲编号中的最小编号作为所述第一I/O请求的请求编号。
3.根据权利要求2所述的方法,其特征在于,还包括:
响应于所述第一编号区间中不存在空闲编号,向所述中心服务器发送用于请求编号区间的编号请求;
接收所述中心服务器基于所述编号请求发送的第二编号区间,其中,所述第二编号区间与所述第一编号区间间隔至少一个编号区间。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定所述第一I/O请求的标签值,包括:
基于所述第一I/O请求的请求编号与所述第二I/O请求的请求编号之间的差值、所述第二I/O请求的标签值以及当前时间,确定所述第一I/O请求的标签值。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一I/O请求的标签值包括保留标签值、阈值标签值和权重标签值中的至少一种。
6.根据权利要求1至3中任一所述的方法,其特征在于,所述基于所述第一I/O请求的标签值,调度所述第一I/O请求,包括:
基于所述第一I/O请求的标签值,确定所述第一I/O请求在请求队列中的排序;
基于所述第一I/O请求在请求队列中的排序,调度所述第一I/O请求。
7.一种资源调度方法,其特征在于,应用于中心服务器,包括:
接收第一资源调度设备发出的第一编号请求,所述第一编号请求用于为用户请求编号区间;
基于为第三编号请求分配的第三编号区间,向所述第一资源调度设备发放第一编号区间,其中,所述第三编号请求为所述中心服务器上一次接收到的、第二资源调度设备发出的针对所述用户的编号请求,第一编号区间位于所述第三编号区间之后;所述中心服务器对应多个资源调度设备,对所述多个资源调度设备的资源调度;根据用户的总编号数确定向所述第一资源调度设备发送的第一编号区间中包括的编号数;其中,每次向所述用户发送的编号数小于所述用户的总编号数。
8.一种资源调度设备,其特征在于,包括:
请求接收单元,用于接收客户端发送的第一I/O请求;
编号区间获取单元,用于基于从中心服务器获取到的第一编号区间,为所述第一I/O请求分配请求编号;还用于响应于所述第一编号区间中不存在空闲编号,向所述中心服务器发送用于请求编号区间的编号请求,并在本地基于所述第一编号区间中的最大编号确定所述第一I/O请求的请求编号;
标签值确定单元,用于基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定所述第一I/O请求的标签值;其中,所述第二I/O为所述第一I/O请求对应的用户上一次发出的I/O请求;
资源调度单元,用于基于所述第一I/O请求的标签值,调度所述第一I/O请求。
9.根据权利要求8所述的设备,其特征在于,所述编号区间获取单元,用于确定所述第一编号区间中是否存在尚未分配的空闲编号;响应于所述第一编号区间中存在至少一个空闲编号,将所述至少一个空闲编号中的最小编号作为所述第一I/O请求的请求编号。
10.根据权利要求9所述的设备,其特征在于,所述编号区间获取单元,还用于响应于所述第一编号区间中不存在空闲编号,向所述中心服务器发送用于请求编号区间的编号请求;接收所述中心服务器基于所述编号请求发送的第二编号区间,其中,所述第二编号区间与所述第一编号区间间隔至少一个编号区间。
11.根据权利要求8至10中任一项所述的设备,其特征在于,所述标签值确定单元,用于基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值、所述第二I/O请求的标签值以及当前时间,确定所述第一I/O请求的标签值。
12.根据权利要求8至10中任一项所述的设备,其特征在于,所述第一I/O请求的标签值包括保留标签值、阈值标签值和权重标签值中的至少一种。
13.根据权利要求8至10中任一所述的设备,其特征在于,所述资源调度单元,用于基于所述第一I/O请求的标签值,确定所述第一I/O请求在请求队列中的排序;基于所述第一I/O请求在请求队列中的排序,调度所述第一I/O请求。
14.一种中心服务器,其特征在于,包括:
请求接收单元,用于接收第一资源调度设备发出的第一编号请求,所述第一编号请求用于为用户请求编号区间;
编号区间发放单元,用于基于为第三编号请求分配的第三编号区间,向所述第一资源调度设备发放第一编号区间,其中,所述第三编号请求为所述中心服务器上一次接收到的、第二资源调度设备发出的针对所述用户的编号请求,第一编号区间位于所述第三编号区间之后;所述中心服务器对应多个资源调度设备,对所述多个资源调度设备的资源调度;根据用户的总编号数确定向所述第一资源调度设备发送的第一编号区间中包括的编号数;其中,每次向所述用户发送的编号数小于所述用户的总编号数。
15.一种资源调度系统,其特征在于,包括:
多个资源调度设备和中心服务器,其中,
所述资源调度设备,用于向所述中心服务器发出用于为用户请求编号区间的第一编号请求;所述资源调度设备,还用于响应于第一编号区间中不存在空闲编号,向所述中心服务器发送用于请求编号区间的编号请求,并在本地基于所述第一编号区间中的最大编号确定第一I/O请求的请求编号;所述资源调度设备,用于基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定所述第一I/O请求的标签值,其中,所述第二I/O请求为所述第一I/O请求对应的用户上一次发出的I/O请求;
所述中心服务器,用于基于所述第一编号请求和上一次为所述用户发放的第三编号区间,向所述资源调度设备发放第一编号区间,其中,第一编号区间位于所述第三编号区间之后。
16.根据权利要求15所述的系统,其特征在于,所述资源调度设备还用于:
接收客户端发送的第一I/O请求;
基于所述第一编号区间,为所述第一I/O请求分配请求编号;
基于所述第一I/O请求的请求编号,调度所述第一I/O请求。
17.根据权利要求16所述的系统,其特征在于,所述资源调度设备,还用于基于所述第一I/O请求的标签值,调度所述第一I/O请求。
18.根据权利要求17所述的系统,其特征在于,所述资源调度设备在基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定所述第一I/O请求的标签值时,还用于基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值、所述第二I/O请求的标签值以及当前时间,确定所述第一I/O请求的标签值。
19.根据权利要求16至18中任一项所述的系统,其特征在于,所述资源调度设备在基于所述第一编号区间,为所述第一I/O请求分配请求编号时,用于确定所述第一编号区间中是否存在尚未分配的空闲编号;响应于所述第一编号区间中存在至少一个空闲编号,所述资源调度设备将所述至少一个空闲编号中的最小编号作为所述第一I/O请求的请求编号。
20.根据权利要求19所述的系统,其特征在于,所述资源调度设备还用于:
响应于所述第一编号区间中不存在空闲编号,所述资源调度设备向所述中心服务器发送用于请求编号区间的第二编号请求;
接收所述中心服务器基于所述第二编号请求发送的第二编号区间,其中,所述第二编号区间与所述第一编号区间间隔至少一个编号区间。
21.根据权利要求15至18中任一项所述的系统,其特征在于,所述资源调度设备为网关实例。
22.一种电子设备,其特征在于,包括:存储器,用于存储可执行指令;
以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成权利要求1至7任意一项所述资源调度方法的操作。
23.一种计算机可读存储介质,用于存储计算机可读取的指令,其特征在于,所述指令被执行时执行权利要求1至7任意一项所述资源调度方法的操作。
CN201910172678.0A 2019-03-07 2019-03-07 资源调度方法、设备、系统及中心服务器 Active CN111666147B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201910172678.0A CN111666147B (zh) 2019-03-07 2019-03-07 资源调度方法、设备、系统及中心服务器
PCT/CN2019/112844 WO2020177336A1 (zh) 2019-03-07 2019-10-23 资源调度方法、设备、系统及中心服务器
JP2020539089A JP7174764B2 (ja) 2019-03-07 2019-10-23 リソーススケジューリング方法、機器、システム、ならびにセンタサーバ
SG11202006769YA SG11202006769YA (en) 2019-03-07 2019-10-23 Resource scheduling methods, device and system, and central server
TW108143798A TWI747092B (zh) 2019-03-07 2019-11-29 資源調度方法、設備、系統及中心伺服器
US16/929,187 US20200348977A1 (en) 2019-03-07 2020-07-15 Resource scheduling methods, device and system, and central server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910172678.0A CN111666147B (zh) 2019-03-07 2019-03-07 资源调度方法、设备、系统及中心服务器

Publications (2)

Publication Number Publication Date
CN111666147A CN111666147A (zh) 2020-09-15
CN111666147B true CN111666147B (zh) 2022-06-07

Family

ID=72337033

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910172678.0A Active CN111666147B (zh) 2019-03-07 2019-03-07 资源调度方法、设备、系统及中心服务器

Country Status (6)

Country Link
US (1) US20200348977A1 (zh)
JP (1) JP7174764B2 (zh)
CN (1) CN111666147B (zh)
SG (1) SG11202006769YA (zh)
TW (1) TWI747092B (zh)
WO (1) WO2020177336A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4002791A1 (en) * 2020-11-13 2022-05-25 Secure Thingz Limited A provisioning system and method
CN112584361B (zh) * 2020-12-09 2021-09-07 齐鲁工业大学 M2m通信中基于深度强化学习的资源调度方法及装置
CN112948089B (zh) * 2021-03-22 2024-04-05 福建随行软件有限公司 一种招投标请求的资源分发方法及数据中心
US20220374149A1 (en) * 2021-05-21 2022-11-24 Samsung Electronics Co., Ltd. Low latency multiple storage device system
CN114168306B (zh) * 2022-02-10 2022-05-17 北京奥星贝斯科技有限公司 调度方法及调度装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103139255A (zh) * 2011-11-30 2013-06-05 腾讯科技(深圳)有限公司 分配资源标识和标识段的方法
US8700628B1 (en) * 2011-02-03 2014-04-15 Google Inc. Personalized aggregation of annotations
CN105812248A (zh) * 2016-05-09 2016-07-27 腾讯科技(深圳)有限公司 标识取值的分配方法和装置
CN108881348A (zh) * 2017-05-15 2018-11-23 新华三技术有限公司 服务质量控制方法、装置和存储服务器

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0215354A (ja) * 1988-07-04 1990-01-19 Hitachi Ltd I/oスケジューリング方法
JPH056282A (ja) * 1991-06-27 1993-01-14 Fujitsu Ltd プロセス管理方式
CN101123448B (zh) * 2006-08-10 2011-04-20 大唐移动通信设备有限公司 一种增强的随机接入控制信道资源分配方法及装置
US20120151479A1 (en) * 2010-12-10 2012-06-14 Salesforce.Com, Inc. Horizontal splitting of tasks within a homogenous pool of virtual machines
US9967230B2 (en) * 2016-02-04 2018-05-08 Google Llc Systems and methods for allocating communication resources via information technology infrastructure
CN106293536B (zh) * 2016-08-12 2019-06-11 华为技术有限公司 输入/输出i/o调度方法及装置
JP6458823B2 (ja) 2017-04-14 2019-01-30 富士通株式会社 情報処理装置、情報処理方法及び情報処理プログラム
US10719245B1 (en) * 2017-07-13 2020-07-21 EMC IP Holding Company LLC Transactional IO scheduler for storage systems with multiple storage devices
US10671494B1 (en) * 2017-11-01 2020-06-02 Pure Storage, Inc. Consistent selection of replicated datasets during storage system recovery
CN108153494B (zh) * 2017-12-25 2019-09-17 新华三技术有限公司 一种io请求处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8700628B1 (en) * 2011-02-03 2014-04-15 Google Inc. Personalized aggregation of annotations
CN103139255A (zh) * 2011-11-30 2013-06-05 腾讯科技(深圳)有限公司 分配资源标识和标识段的方法
CN105812248A (zh) * 2016-05-09 2016-07-27 腾讯科技(深圳)有限公司 标识取值的分配方法和装置
CN108881348A (zh) * 2017-05-15 2018-11-23 新华三技术有限公司 服务质量控制方法、装置和存储服务器

Also Published As

Publication number Publication date
JP7174764B2 (ja) 2022-11-17
JP2021518002A (ja) 2021-07-29
WO2020177336A1 (zh) 2020-09-10
US20200348977A1 (en) 2020-11-05
CN111666147A (zh) 2020-09-15
SG11202006769YA (en) 2020-10-29
TW202034179A (zh) 2020-09-16
TWI747092B (zh) 2021-11-21

Similar Documents

Publication Publication Date Title
CN111666147B (zh) 资源调度方法、设备、系统及中心服务器
US8701117B2 (en) Resource consumption template processing model
Gomoluch et al. Market-based Resource Allocation for Grid Computing: A Model and Simulation.
EP3718008B1 (en) Provisioning using pre-fetched data in serverless computing environments
CN107590002A (zh) 任务分配方法、装置、存储介质、设备及分布式任务系统
CN105159782A (zh) 基于云主机为订单分配资源的方法和装置
US9875139B2 (en) Graphics processing unit controller, host system, and methods
US9858117B2 (en) Method and system for scheduling input/output resources of a virtual machine
US20100042723A1 (en) Method and system for managing load in a network
CN112825042A (zh) 资源管理方法和装置、电子设备及存储介质
CN111506434B (zh) 一种任务处理方法、装置及计算机可读存储介质
CN109635986A (zh) 门店推送方法、装置、设备及存储介质
CN115292014A (zh) 图像渲染方法、装置和服务器
CN109582439B (zh) Dcn部署方法、装置、设备及计算机可读存储介质
CN109729113A (zh) 管理专用处理资源的方法、服务器系统和计算机程序产品
CN114721818A (zh) 一种基于Kubernetes集群的GPU分时共享方法和系统
Patel et al. A survey on load balancing in cloud computing
US20150212859A1 (en) Graphics processing unit controller, host system, and methods
CN107045452B (zh) 虚拟机调度方法和装置
CN111858035A (zh) 一种fpga设备分配方法、装置、设备及存储介质
US8589551B2 (en) Multiprocessor computer and network computing system processing use and provision of hardware resource via a network
KR20140097881A (ko) 자원 사용량 예측 기반 부하분산 장치 및 방법
CN116680086B (zh) 一种基于离线渲染引擎的调度管理系统
CN112073498A (zh) 一种资源分配方法及装置
KR20150108167A (ko) 부하 분산 장치 및 그 방법

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40028411

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant