CN115202842A - 任务调度方法及装置 - Google Patents
任务调度方法及装置 Download PDFInfo
- Publication number
- CN115202842A CN115202842A CN202210827085.5A CN202210827085A CN115202842A CN 115202842 A CN115202842 A CN 115202842A CN 202210827085 A CN202210827085 A CN 202210827085A CN 115202842 A CN115202842 A CN 115202842A
- Authority
- CN
- China
- Prior art keywords
- tenant
- request
- processing
- queue
- task
- 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/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
- 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
- G06F9/5016—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 the resource being the memory
-
- 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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- 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/5013—Request control
-
- 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/5018—Thread allocation
-
- 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/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书一个或多个实施例提供一种任务调度方法及装置,应用于任务调度器,包括:分别接收多个租户下发的请求;根据各租户对用于处理请求的处理资源的占用程度,确定所述多个租户的优先级顺序,其中,占用程度越低的租户对应处的优先级越高;当所述处理资源中存在可以用于完成请求的空闲资源时,获取优先级最高的租户的目标请求,并将所述目标请求下发至所述处理资源进行处理。
Description
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种任务调度方法及装置。
背景技术
随着技术的进步,云存储服务的租户数量也有了明显的增加。通常情况下,租户需要共享云存储服务提供者提供的存储系统。因此,存储系统在处理各个租户的请求时,需要考虑对处理资源的分配问题,否则各个租户将无序抢占处理资源,会导致部分租户的数据不可用,甚至引发存储系统故障导致无法提供存储系统,进一步地,还可能影响存储系统中存储的数据损坏。例如,慢请求租户长期占用存储系统的处理资源,导致该部分处理资源被满请求阻塞,影响其他租户的请求的执行。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种任务调度方法及装置。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种任务调度方法,应用于任务调度器,所述方法包括:
分别接收多个租户下发的请求;
根据各租户对用于处理请求的处理资源的占用程度,确定所述多个租户的优先级顺序,其中,占用程度越低的租户对应处的优先级越高;
当所述处理资源中存在可以用于完成请求的空闲资源时,获取优先级最高的租户的目标请求,并将所述目标请求下发至所述处理资源进行处理。
根据本说明书一个或多个实施例的第二方面,提供了一种任务调度装置,应用于任务调度器,包括:
接收单元,用于分别接收多个租户下发的请求;
确定单元,用于根据各租户对用于处理请求的处理资源的占用程度,确定所述多个租户的优先级顺序,其中,占用程度越低的租户对应处的优先级越高;
获取单元,用于当所述处理资源中存在可以用于完成请求的空闲资源时,获取优先级最高的租户的目标请求,并将所述目标请求下发至所述处理资源进行处理。
根据本说明书一个或多个实施例的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面所述的方法的步骤。
根据本说明书一个或多个实施例的第四方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法的步骤。
在本说明书所提供的技术方案中,基于任务调度器,根据各个租户在处理资源上的占用程度,确定各个租户的优先级,当处理资源中存在空闲资源时,根据各个租户的优先级顺序决定下发哪一个租户的请求至处理资源进行处理。通过上述方法,提高了请求处理的公平性,避免了单个租户过度占用处理资源导致其他租户请求无法被处理的情况,保证存储系统的稳定性。
附图说明
图1是本说明书一示例性实施例提供的一种任务调度系统的架构示意图;
图2是本说明书一示例性实施例提供的一种任务调度方法的流程示意图;
图3是本说明书一示例性实施例提供的一种调度器的结构示意图;
图4是本说明书一示例性实施例提供的一种电子设备的结构示意图;
图5是本说明书一示例性实施例提供的一种任务调度装置示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
随着技术的进步,云存储服务的租户数量也有了明显的增加。通常情况下,租户需要共享云存储服务提供者提供的存储系统。因此,存储系统在处理各个租户的请求时,需要考虑对处理资源的分配问题,否则各个租户将无序抢占处理资源,会导致部分租户的数据不可用,甚至引发存储系统故障导致无法提供存储系统,进一步地,还可能影响存储系统中存储的数据损坏。这就需要存储系统具有一定的QoS(Quality of Service,系统服务质量)管理能力,即在云存储服务场景下,存储组员需要同时向多个租户提供稳定且高质量的存储服务,在尽量低延时地处理各个租户的IO请求的同时,还要保证存储系统的性能稳定,例如,IOPS(Input/Output Operations Per Second,每秒的读写次数)稳定。
为了提高存储系统中在多租户公用处理资源情况下,处理资源分配的合理性,本说明书提出一种任务调度方法,根据各个租户在处理资源上的占用程度,确定各个租户的优先级,当处理资源中存在空闲资源时,根据各个租户的优先级顺序决定租户的请求处理顺序,从而避免单个租户占用过多处理资源导致其他租户的请求无法被处理的情况,保证了存储系统的稳定性,提高了存储系统的QoS能力。
图1是本说明书示出的一种任务调度系统的架构示意图。如图1所示,可以包括服务器11、网络12以及终端设备13。
所述服务器11可以为包含一独立主机的物理服务器,或者该服务器11可以为主机集群承载的虚拟服务器。在运行过程中,服务器11可以配置有任务调度装置,该装置可以采用软件和/或硬件的方式实现,以根据各个租户在处理资源上的占用程度,确定各个租户的优先级,当处理资源中存在空闲资源时,根据各个租户的优先级顺序决定租户的请求处理顺序。
终端设备13指用户可以使用的一种类型的电子设备,例如,笔记本电脑、智能手机、台式电脑。实际上,用户显然还可以使用诸如下述类型的电子设备:电脑、手机、平板设备、掌上电脑(PDAs,Personal Digital Assistants)、可穿戴设备(如智能眼镜、智能手表等)等,本说明书一个或多个实施例并不对此进行限制。在运行过程中,租户可以利用终端设备13向存储系统下发请求。
终端设备13与服务器11之间进行交互的网络12可以包括多种类型的有线或无线网络,例如:公共交换电话网络(Public Switched Telephone Network,PSTN)和因特网。
下面结合图2,对本说明书提供的一种任务调度方法进行说明。其中,图2是一示例性实施例提供的一种任务调度方法的流程示意图。如图2所示,该方法可以包括如下步骤:
S201,分别接收多个租户下发的请求。
在本说明书一示例性实施例中,上述任务调度方法可以应用于任务调度器。假设该任务调度器作用的存储系统的租户共有三人,分别为租户A、租户B和租户C,上述三个租户均可以向所述任务调度器下发请求。在本说明书一示例性实施例中,假设某一时段内,租户A下发了请求1和请求2;租户B下发了请求3;租户C下发请求4。
在本说明书一示例性实施例中,上述请求包括IO(In/Out,读/写)请求。
任务调度器接收上述来自各个租户的不同请求,并进行后续步骤。
S202,根据各租户对用于处理请求的处理资源的占用程度,确定所述多个租户的优先级顺序,其中,占用程度越低的租户对应处的优先级越高。
假设在本说明书一示例性实施例中,租户A对用于处理请求的处理资源的占用程度为40%,租户B对用于处理请求的处理资源的占用程度为35%,租户C对用于处理请求的处理资源的占用程度为25%。由于占用程度越低的租户对应处的优先级越高,根据各个租户对用于处理请求的处理资源的占用程度,可以获得各个租户的优先级顺序为:(1)租户C;(2)租户B;(3)租户A。
在确定各个租户的优先级顺序后,进行下一步骤。
S203,当所述处理资源中存在可以用于完成请求的空闲资源时,获取优先级最高的租户的目标请求,并将所述目标请求下发至所述处理资源进行处理。
上述步骤中,由于在对租户按照优先级进行排列时,占用程度越小的租户的优先级越高,当处理资源中存在可以用于完成请求的空闲资源时,也就越先处理占用程度越小的租户的请求,因此,上述方法可以有效避免单个租户占用过多资源导致处理资源无法及时处理其他租户的请求。
在本说明书一示例性实施例中,占用程度与租户在所述处理资源中的请求处理并发度相关。上述请求处理并发度是指租户在处理资源中同时占用的资源数量。在本说明书一示例性实施例中,假设存储系统中用于处理租户下发的请求的处理资源包括100个线程,若此时正在处理租户A下发的请求的线程为40个、租户B占用的线程为35个、租户C占用的线程为25个,则租户A在处理资源中的请求处理并发度为40、租户B的请求处理并发度为35、租户C的请求处理并发度为25。当然,也可以采用百分数的形式来描述任一租户在处理资源中的请求处理并发度,对此,本说明书不做具体限制。
在本说明书一示例性实施例中,在任一请求被下发至所述处理资源的情况下,将下发该请求的租户对应的请求处理并发度递增;在任一请求被所述处理资源处理完成的情况下,将下发该请求的租户对应的请求处理并发度递减。
假设,某一时刻,一具有10个线程的处理资源中,租户A的请求处理并发度为6、租户B的请求处理并发度为1,租户C的请求处理并发度为2,处理资源中还有1个线程是未被占用的空闲资源。假设根据此时的占用程度,按照优先级顺序,将租户A、租户B和租户C按照如下的顺序排列:租户B、租户C、租户A。租户B有一请求b可以由未被占用的线程完成,则任务调度器将该请求下发至处理资源中的该线程以进行处理。此时,处理资源中对应于各个租户的请求处理并发度已经改变,需要对处理资源的请求处理并发度进行更新,因此,当该请求b被下发至处理资源后,下发该请求b的租户B对应的请求处理并发度递增。在本实施例中,租户B的请求处理并发度加1,租户A的请求处理并发度为6、租户B的请求处理并发度为2,租户C的请求处理并发度为2。
假设此时,处理资源中,对于租户C的某一请求c被处理完成,该请求c占用了1个线程,当该请求c被处理完成后,处理资源中将空闲1个线程,此时,租户C的请求处理并发度减1。
由上述实施例可知,当仅考虑租户在处理资源上的请求处理并发度情况下,当出现有两个租户的请求处理并发度相同时候,任务调度器可能无法判断两租户的优先级顺序,因此,可以考虑将其他因素加入对于优先级顺序的排列中,例如,在本说明书一示例性实施例中,上述占用程度与相应租户下发的请求对所述处理资源的占用时长相关。当然,也可以考虑其他因素,例如,存储系统预设的顺序、请求的下发时间、租户的等级、租户加入存储系统的时间等,对此,本说明书不做具体限制。
如上述实施例中,租户A的请求处理并发度为6、租户B的请求处理并发度为2,租户C的请求处理并发度为2,此时,租户B与租户C的请求处理并发度相同,假设租户B占用所述处理资源的时长短于租户C的占用时长,则判定租户B的优先级高于租户C。当然,在本说明书中,占用程度还可以与用户等级相关,例如,租户B与租户C虽然在处理资源中的请求处理并发度相同,但是租户B为高级用户,租户C为普通用户,则此时,考虑用户等级,则判定租户B的优先级高于租户C。上述影响占用程度的各个因素可以单独适用,也可以视应用场景进行综合考虑,例如,对于各个因素设置权值,从而对各个租户的占用程度进行加权统计,或者,按照顺序优先考虑某一因素,在该因素无法决定优先级顺序时,再将其他因素作为影响条件加入进行考虑,例如,优先根据请求处理并发度对各个租户的优先级顺序进行排列,在请求处理并发度无法决定部分租户的优先级顺序时,再考虑如何处理资源占用时长等其他因素对于优先级顺序的影响。对于上述各种租户优先级顺序的确定方案,本说明书不做具体限制。
当然,上述实施例中,处理1个请求可以占用多个线程,本说明书不做具体限制。
在本说明书一示例性实施例中,判定处理资源中是否存在可以用于完成请求的空闲资源,可以包括如下的步骤:
确定所述处理资源的剩余并发度;
在所述剩余并发度不小于请求所需的请求处理并发度的情况下,判定存在所述空闲资源。
例如,在上述实施例中,假设租户B的请求b需要占用2个线程已完成。处理资源共10个线程,其中租户A占用5个,租户B占用2个,租户C占用1个,此时可以确定,剩余并发度为2,由于剩余并发度不小于请求b所需的请求处理并发度,则判定,此时处理资源中存在空闲资源。
在本说明书一示例性实施例中,上述任务调度器可以如图3所示,该任务调度器主要维护有与租户一一对应的任务队列。例如,假设该任务调度器作用的存储系统的租户共有三人,分别为租户A、租户B和租户C,则相应地,该任务调度器维护有与上述三个租户一一对应的任务队列,分别为任务队列311、任务队列312和任务队列313。假设某一时段内,租户A下发了请求1和请求2;租户B下发了请求3;租户C下发请求4。
在本说明书一示例性实施例中,当任务调度器接收各个租户的请求后,将各个请求按照接收的先后顺序分别放入对应的任务队列,等待任务调度器进行调度并将请求下发至处理资源进行处理。例如,将请求1和请求2放入与租户A相对应的任务队列311中,将请求3放入与租户B相对应的任务队列312中,将请求4放入与租户C相对应的任务队列313中。当所述处理资源中存在可以用于完成请求的空闲资源时,获取优先级最高的租户对应的任务队列中排列在队首的请求,以作为所述目标请求,并将所述目标请求下发至所述处理资源进行处理。例如,在上述实施例中,假设租户A对应的任务队列311中仅有刚刚下发的请求1与请求2,此时,请求1由于下方时间早所以排在任务队列311的队首。此时,假设优先级最高的租户为租户A,则此时,将排在任务队列311队首的请求1作为目标请求下发至处理资源进行处理。
在本说明书一示例性实施例中,如图3所示,任务调度器还维护有运行队列32,所述任务队列中包括与所述任务队列一一对应的队列标识,其中,所述队列标识的排列顺序与所述任务队列对应的租户的优先级顺序相关,上述获取优先级最高的租户对应的任务队列中排列在队首的请求,包括如下的步骤:将运行队列中排在队首的队列标识对应的任务队列作为所述优先级最高的租户对应的任务队列;获取所述优先级最高的租户对应的任务队列中排在队首的请求,以作为所述目标请求。
例如,如图3所示,任务队列311对应于队列标识321、任务队列312对应于队列标识322,任务队列313对应于队列标识323。根据占用程度确定的租户的优先级顺序,排列位于运行队列中的队列标识的顺序。例如,假设租户的优先级顺序为租户B、租户C、租户A,则运行队列中的队列标识顺序即为如图所示的队列标识322、队列标识323、队列标识321。此时,当处理资源中存在空闲资源时候,根据队列标识的排列顺序,即可确定各个租户的优先级顺序,此时,运行队列中排在队首的队列标识对应的任务队列即为优先级最高的租户对应的任务队列。即,队列标识322对应的租户B即为优先级最高的租户,且队列标识322对应的任务队列312即为优先级最高的租户对应的任务队列。此时,从该任务队列中获取排在队首的请求,作为目标请求。
为便于理解,下面提供一种具体实施例。假设如图3所示的任务调度器作用的存储系统对应有三个租户,分别为租户A、租户B和租户C。该任务调度器维护有与租户一一对应的任务队列,其中,租户A对应任务队列311、租户B对应任务队列312、租户C对应任务队列313。该任务调度器还维护有运行队列32,其中,运行队列32中包括与任务队列一一对应的队列标识,其中,队列标识321对应于任务队列311、队列标识322对应于任务队列312、队列标识323对应于任务队列313。
任务调度器接收各个租户下发的请求后,按照接收请求的时间先后顺序将接收到的请求放入与下发请求的租户对应的任务队列中排队,如图3所示,假设在某一时间段内,任务调度器接收来自租户A的请求1、请求2和请求4;租户B的请求3和请求5;租户C的请求6。则此时,任务队列311中按照顺序排列有请求1、请求2和请求4,任务队列312中排列有请求3和请求5、任务队列313中排列有请求6。
在该实施例中,仅考虑请求处理并发度对占用程度的影响,且每个请求需占用1个线程进行处理。假设处理资源包括10个线程,在某一时刻,租户A在处理资源中占用2个线程、租户B占用4个线程、租户C占用3个线程,则可以确定,租户A的请求处理并发度为2、租户B的请求处理并发度为3、租户C的请求处理并发度为3。此时,根据各个租户的请求处理并发度,对各个租户的优先级顺序进行排列,获得优先级顺序:租户A、租户C、租户B。根据该优先级顺序,对位于运行队列中的队列标识进行重新排序。获得队列标识的排序结果:队列标识321、队列标识323、队列标识322。
由于此刻处理资源中恰好剩余1个线程作为空闲资源可以继续处理请求,此时,获取优先级最高的租户的目标请求。根据运行队列中队列标识在该时刻的排列顺序,将位于运行队列队首的队列标识321对应的任务队列311中的,位于队首的请求1作为目标请求,下发至处理资源进行处理。
将请求1下发至处理资源进行处理后,租户A的请求处理并发度由2变为3,其他租户的请求处理并发度不变。同时,同样在该时刻,处理资源中,某一由租户C下的请求被处理完成,此时,租户C的请求处理并发度减去1,由3变为2。由于请求处理并发度的改变,各个租户的优先级顺序可能发生改变,此时,需要对各个租户的优先级顺序重新进行排序,并按照新的优先级顺序对运行队列中的各个队列标识进行重新排序。在此刻,租户A的请求处理并发度为3、租户B的请求处理并发度为4,租户C的请求处理并发度为2,则优先级顺序为:租户C、租户A、租户B。按照上述顺序重新对于运行队列中的队列标识进行排序,获得排序如下:队列标识323、队列标识321、队列标识322。
由于此可,处理资源中还是剩余1个线程的空闲资源,因此,可以将优先级最高的租户对应的任务队列中排在队首的请求下发至处理资源,即将队列标识323对应的任务队列313中排在队首的请求6下发至处理资源进行处理,并将租户C对应的请求处理并发度加1。按照上述方法重新确定租户的优先级顺序,并重新排列位于运行队列中的队列标识,实时更新队列标识的顺序,以保证任务调度器按照实时的请求处理并发度确定目标请求,进而保证了任务调度的公平性。
在本说明书一示例性实施例中,上述方法可以应用于分布式存储系统中,该分布式存储系统可以包括多个节点,上述任务调度器可以以软件和/或硬件的形式部署于任意一个或者多个节点,对此,本说明书不做具体限制。
图4是本说明书一示例性实施例的一种电子设备的结构示意图。请参考图4,在硬件层面,该设备包括处理器402、内部总线404、网络接口406、内存408及非易失性存储器410。当然还可能包括其他功能所需要的硬件。处理器402从非易失性存储器410中读取对应的计算机程序到内存408中然后运行,在逻辑层面上形成一种任务调度装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
相应于上述方法的实施例,本说明书还提供一种任务调度装置,如图5所示,该装置可以包括:
接收单元510,用于分别接收多个租户下发的请求;
确定单元520,用于根据各租户对用于处理请求的处理资源的占用程度,确定所述多个租户的优先级顺序,其中,占用程度越低的租户对应处的优先级越高;
获取单元530,用于当所述处理资源中存在可以用于完成请求的空闲资源时,获取优先级最高的租户的目标请求,并将所述目标请求下发至所述处理资源进行处理。
可选地,所述占用程度与租户在所述处理资源中的请求处理并发度相关。
可选地,所述装置还可以包括:
递增单元540,用于在任一请求被下发至所述处理资源的情况下,将下发该请求的租户对应的请求处理并发度递增;
递减单元550,用于在任一请求被所述处理资源处理完成的情况下,将下发该请求的租户对应的请求处理并发度递减。
可选地,所述装置还可以包括:
剩余并发度确定单元560,用于确定所述处理资源的剩余并发度;
判定单元570,用于在所述剩余并发度不小于请求所需的请求处理并发度的情况下,判定存在所述空闲资源。
可选地,所述占用程度与相应租户下发的请求对所述处理资源的占用时长相关。
可选地,所述调度器维护有与租户一一对应的任务队列,所述获取单元530可以具体用于:
获取优先级最高的租户对应的任务队列中排列在队首的请求,以作为所述目标请求。
可选地,所述任务调度器还维护有运行队列,所述运行队列中包括与所述任务队列一一对应的队列标识,其中,所述队列标识的排列顺序与所述任务队列对应的租户的优先级顺序相关,所述获取单元530还可以具体用于:
将所述运行队列中排在队首的队列标识对应的任务队列作为所述优先级最高的租户对应的任务队列;
获取所述优先级最高的租户对应的任务队列中排在队首的请求,以作为所述目标请求。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
在本说明书一个或多个实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (10)
1.一种任务调度方法,包括:
分别接收多个租户下发的请求;
根据各租户对用于处理请求的处理资源的占用程度,确定所述多个租户的优先级顺序,其中,占用程度越低的租户对应处的优先级越高;
当所述处理资源中存在可以用于完成请求的空闲资源时,获取优先级最高的租户的目标请求,并将所述目标请求下发至所述处理资源进行处理。
2.如权利要求1所述的方法,所述占用程度与租户在所述处理资源中的请求处理并发度相关。
3.如权利要求2所述的方法,还包括:
在任一请求被下发至所述处理资源的情况下,将下发该请求的租户对应的请求处理并发度递增;
在任一请求被所述处理资源处理完成的情况下,将下发该请求的租户对应的请求处理并发度递减。
4.如权利要求2所述的方法,还包括:
确定所述处理资源的剩余并发度;
在所述剩余并发度不小于请求所需的请求处理并发度的情况下,判定存在所述空闲资源。
5.如权利要求1所述的方法,所述占用程度与相应租户下发的请求对所述处理资源的占用时长相关。
6.如权利要求1所述的方法,所述调度器维护有与租户一一对应的任务队列,所述获取优先级最高的租户的目标请求,包括:
获取优先级最高的租户对应的任务队列中排列在队首的请求,以作为所述目标请求。
7.如权利要求6所述的方法,所述任务调度器还维护有运行队列,所述运行队列中包括与所述任务队列一一对应的队列标识,其中,所述队列标识的排列顺序与所述任务队列对应的租户的优先级顺序相关,所述获取优先级最高的租户对应的任务队列中排列在队首的请求,包括:
将所述运行队列中排在队首的队列标识对应的任务队列作为所述优先级最高的租户对应的任务队列;
获取所述优先级最高的租户对应的任务队列中排在队首的请求,以作为所述目标请求。
8.一种任务调度装置,包括:
接收单元,用于分别接收多个租户下发的请求;
确定单元,用于根据各租户对用于处理请求的处理资源的占用程度,确定所述多个租户的优先级顺序,其中,占用程度越低的租户对应处的优先级越高;
获取单元,用于当所述处理资源中存在可以用于完成请求的空闲资源时,获取优先级最高的租户的目标请求,并将所述目标请求下发至所述处理资源进行处理。
9.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现权利要求1-7中任意一项所述方法的步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1-7中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210827085.5A CN115202842A (zh) | 2022-07-13 | 2022-07-13 | 任务调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210827085.5A CN115202842A (zh) | 2022-07-13 | 2022-07-13 | 任务调度方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115202842A true CN115202842A (zh) | 2022-10-18 |
Family
ID=83580020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210827085.5A Pending CN115202842A (zh) | 2022-07-13 | 2022-07-13 | 任务调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115202842A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115994019A (zh) * | 2023-01-10 | 2023-04-21 | 杭州比智科技有限公司 | 基于大数据集群下多租户资源动态计算的策略方法及系统 |
-
2022
- 2022-07-13 CN CN202210827085.5A patent/CN115202842A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115994019A (zh) * | 2023-01-10 | 2023-04-21 | 杭州比智科技有限公司 | 基于大数据集群下多租户资源动态计算的策略方法及系统 |
CN115994019B (zh) * | 2023-01-10 | 2023-06-06 | 杭州比智科技有限公司 | 基于大数据集群下多租户资源动态计算的策略方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10606653B2 (en) | Efficient priority-aware thread scheduling | |
CN110096353B (zh) | 任务调度方法及装置 | |
US8424007B1 (en) | Prioritizing tasks from virtual machines | |
US20170357531A1 (en) | Priority-based resource allocation | |
JP6072783B2 (ja) | メモリコントローラおよびかかるメモリコントローラの動作方法 | |
JP4723260B2 (ja) | ソースデバイスに対するリクエストをスケジューリングする装置及び方法 | |
US9448864B2 (en) | Method and apparatus for processing message between processors | |
US8799913B2 (en) | Computing system, method and computer-readable medium for managing a processing of tasks | |
US20130139172A1 (en) | Controlling the use of computing resources in a database as a service | |
US20100083262A1 (en) | Scheduling Requesters Of A Shared Storage Resource | |
US7681196B2 (en) | Providing optimal number of threads to applications performing multi-tasking using threads | |
CN111324427B (zh) | 一种基于dsp的任务调度方法及装置 | |
US20090178045A1 (en) | Scheduling Memory Usage Of A Workload | |
CN107515781B (zh) | 一种基于多处理器的确定性任务调度及负载均衡系统 | |
US9864706B2 (en) | Management of allocation for alias devices | |
US20190286582A1 (en) | Method for processing client requests in a cluster system, a method and an apparatus for processing i/o according to the client requests | |
US10686721B2 (en) | Storage device access mediation | |
CN115202842A (zh) | 任务调度方法及装置 | |
CN117251275A (zh) | 多应用异步i/o请求的调度方法及系统、设备及介质 | |
CN112368681A (zh) | 消息的非对称协作队列管理 | |
US11221971B2 (en) | QoS-class based servicing of requests for a shared resource | |
CN109491785B (zh) | 内存访问调度方法、装置及设备 | |
JP2020154391A (ja) | 情報処理システムおよびプログラム | |
CN115766582A (zh) | 流量控制方法、装置和系统、介质和计算机设备 | |
US11474868B1 (en) | Sharded polling system |
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 |