CN112148458A - 任务调度方法、装置 - Google Patents

任务调度方法、装置 Download PDF

Info

Publication number
CN112148458A
CN112148458A CN202011076584.2A CN202011076584A CN112148458A CN 112148458 A CN112148458 A CN 112148458A CN 202011076584 A CN202011076584 A CN 202011076584A CN 112148458 A CN112148458 A CN 112148458A
Authority
CN
China
Prior art keywords
server
target
task
determining
edge device
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
Application number
CN202011076584.2A
Other languages
English (en)
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202011076584.2A priority Critical patent/CN112148458A/zh
Publication of CN112148458A publication Critical patent/CN112148458A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/505Allocation 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 load

Abstract

本申请的实施例提供了一种任务调度方法、装置,该方法执行于任务调度端。该方法包括:获取来自目标边缘设备的目标任务,所述目标任务中包括所述目标边缘设备的目标边缘设备标识;在预设存储区中确定事先建立的边缘设备标识和服务器标识之间的映射关系;基于所述映射关系,确定与所述目标边缘设备标识相关联的目标服务器标识;将所述目标任务路由至与所述目标服务器标识对应的目标服务器,以通过所述目标服务器处理所述目标任务。本申请实施例的技术方案可以降低对任务特别是数据处理任务的调度成本。

Description

任务调度方法、装置
技术领域
本申请涉及云技术及计算机技术领域,具体而言,涉及一种任务调度方法、装置。
背景技术
在任务调度场景中,比如将同一设备请求的数据处理任务调度至同一后端服务器的场景,通常是通过数据的读写分离来完成,即首先引入存储,将各个设备上传的数据任务汇集到存储中,然后由服务器在存储中将同一设备的数据拉取后进行连续的分析,然而,当需要分析的数据量规模较大时,则对存储的要求就较高,这就增加了硬件成本。基于此,如何能够降低对任务特别是数据处理任务的调度成本是亟待解决的技术问题。
发明内容
本申请的实施例提供了一种任务调度方法、装置、计算机可读介质及电子设备,进而至少在一定程度上可以降低对任务特别是数据处理任务的调度成本。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供了一种任务调度方法,所述方法执行于任务调度端,所述方法包括:获取来自目标边缘设备的目标任务,所述目标任务中包括所述目标边缘设备的目标边缘设备标识;在预设存储区中确定事先建立的边缘设备标识和服务器标识之间的映射关系;基于所述映射关系,确定与所述目标边缘设备标识相关联的目标服务器标识;将所述目标任务路由至与所述目标服务器标识对应的目标服务器,以通过所述目标服务器处理所述目标任务。
根据本申请实施例的一个方面,提供了一种任务调度方法,所述方法执行于任务接收端,所述方法包括:接收由至少一个边缘设备发送的任务,得到至少一个任务;根据各个任务调度端所承载的调度负载,将所述至少一个任务分发至各个任务调度端,以使得每一个任务调度端执行上述第一方面或者第一方面的各种可选实现方式中提供的方法。
根据本申请实施例的一个方面,提供了一种任务调度装置,所述装置设置于任务调度端,所述装置包括:第一获取单元,被用于获取来自目标边缘设备的目标任务,所述目标任务中包括所述目标边缘设备的目标边缘设备标识;第一确定单元,被用于在预设存储区中确定事先建立的边缘设备标识和服务器标识之间的映射关系;第二确定单元,被用于基于所述映射关系,确定与所述目标边缘设备标识相关联的目标服务器标识;路由单元,被用于将所述目标任务路由至与所述目标服务器标识对应的目标服务器,以通过所述目标服务器处理所述目标任务。
在本申请的一些实施例中,基于前述方案,所述装置还包括:第三确定单元,被用于在基于所述映射关系,确定与所述目标边缘设备标识相关联的目标服务器标识之前,在所述预设存储区不存在与所述目标边缘设备标识相关联的目标服务器标识时,在各个服务器中确定一个待选服务器,所述待选服务器用于处理所述目标任务;建立单元,被用于建立所述目标边缘设备标识与所述待选服务器的服务器标识之间的映射关系;存储单元,被用于将所述目标边缘设备标识与所述待选服务器的服务器标识之间的映射关系存储至所述预设存储区。
在本申请的一些实施例中,基于前述方案,所述第三确定单元配置为:分别获取各个服务器的可用负载值,所述可用负载值用于表征服务器处理任务的能力;将所述可用负载值最高的服务器确定为所述待选服务器。
在本申请的一些实施例中,基于前述方案,所述第三确定单元配置为:分别获取各个服务器的可用负载值,所述可用负载值用于表征服务器处理任务的能力;根据各个服务器的可用负载值,分别确定各个服务器被确定为待选服务器的选择概率值;基于各个服务器的选择概率值,在各个服务器中确定一个待选服务器。
在本申请的一些实施例中,所述服务器的可用负载值的获取方法包括如下任意一种:将服务器中的单位时间内运行队列中的平均线程数的倒数确定为所述可用负载值;将服务器中已关联的边缘设备的数量的倒数确定为所述可用负载值;将服务器中CPU利用率的倒数确定为所述可用负载值;将服务器中的磁盘剩余空间确定为所述可用负载值;将服务器内存剩余空间确定为所述可用负载值。
在本申请的一些实施例中,基于前述方案,所述装置还包括:第二获取单元,被用于在所述目标服务器出现故障时,获取所述目标服务器中的至少一个任务;调度单元,被用于根据除所述目标服务器之外的其它服务器的可用负载值,将所述至少一个任务均衡调度至除所述目标服务器之外的其它服务器。
在本申请的一些实施例中,基于前述方案,所述装置还包括:配置单元,被用于在各个服务器的可用负载值低于预定阈值时,配置一个初始服务器;第四确定单元,被用于为所述初始服务器确定一个初始的可用负载值。
根据本申请实施例的一个方面,提供了一种任务调度装置,所述装置设置于任务接收端,所述装置包括:接收单元,被用于接收由至少一个边缘设备发送的任务,得到至少一个任务;分发单元,被用于根据各个任务调度端所承载的调度负载,将所述至少一个任务分发至各个任务调度端,以使得每一个任务调度端执行上述第一方面或者第一方面的各种可选实现方式中提供的方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一、二方面或者第一、二方面的各种可选实现方式中提供的方法。
根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的任务调度方法。
根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的任务调度方法。
在本申请的一些实施例所提供的技术方案中,通过在预设存储区中确定事先建立的边缘设备标识和服务器标识之间的映射关系,可以确定与所述目标任务中的目标边缘设备标识对应的目标服务器标识,进而可以将目标任务路由至与所述目标服务器标识对应的目标服务器,以实现通过所述目标服务器处理所述目标任务。一方面,由于预设存储区中的边缘设备标识和服务器标识之间的映射关系,故可以实现固定服务器寻址的自动调度策略,从而可以实现边缘设备发送的任务与服务器之间的自动接入和维护,另一方面,由于边缘设备标识和服务器标识之间的映射关系的数据大小要远远小于各个设备上传的数据任务的数据大小,因此不会对存储有较高的要求,进而降低对任务特别是数据处理任务的调度成本,即降低硬件成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图;
图2示出了根据本申请的一个实施例的任务调度方法的流程图;
图3示出了根据本申请的一个实施例的确定与所述目标边缘设备标识相关联的目标服务器标识之前的方法流程图;
图4示出了根据本申请的一个实施例的在各个服务器中确定一个待选服务器的细节流程图;
图5示出了根据本申请的一个实施例的在各个服务器中确定一个待选服务器的细节流程图;
图6示出了根据本申请的一个实施例的在所述目标服务器出现故障时的方法流程图;
图7示出了根据本申请的一个实施例的在各个服务器的可用负载值低于预定阈值时的方法流程图;
图8示出了根据本申请的一个实施例的任务调度方法的流程图;
图9示出了根据本申请的一个实施例的实施任务调度方法的系统框架图;
图10示出了根据本申请的一个实施例的任务调度装置的框图;
图11示出了根据本申请的一个实施例的任务调度装置的框图;
图12示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
需要注意的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的对象在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在图示或描述的那些以外的顺序实施。
图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图。
如图1所示,系统架构可以包括终端设备(如图1中所示智能手机101、平板电脑102和便携式计算机103中的一种或多种,当然也可以是其它具有定位功能的终端设备,例如水表。电表等等)、网络104和服务器105。网络104用以在终端设备和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线通信链路、无线通信链路等等。
在本申请的一个实施例中,可以是服务器105获取来自终端设备的目标任务,所述目标任务中包括所述终端设备的终端设备标识,服务器105在预设存储区中确定事先建立的边缘设备标识和服务器标识之间的映射关系,并基于所述映射关系,确定与所述终端设备标识相关联的目标服务器标识,服务器105将所述目标任务路由至与所述目标服务器标识对应的目标服务器(需要说明的是,这里的目标服务器的作用和功能区别于服务器105),以通过所述目标服务器处理所述目标任务。
需要说明的是,本申请实施例所提供的任务调度方法可以由服务器105执行,相应地,任务调度装置一般设置于服务器105中。但是,在本申请的其它实施例中,终端设备也可以与服务器具有相似的功能,从而执行本申请实施例所提供的任务调度方案。
还需要说明的是,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此,本申请在此不做限制。
需要解释的是,如上所述的云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展。通过建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
下面将从不同执行主体的角度,对本申请实施例的技术方案的实现细节进行详细阐述:
从任务调度端的角度进行阐述:
本实施例提供了一种任务调度方法。
参见图2,示出了根据本申请的一个实施例的任务调度方法的流程图,该任务调度方法可以由具有计算处理功能的设备来执行,比如可以由图1中所示的服务器105来执行。参照图2所示,该任务调度方法至少包括步骤210至步骤270,详细介绍如下:
在步骤210中,获取来自目标边缘设备的目标任务,所述目标任务中包括所述目标边缘设备的目标边缘设备标识。
在本申请中,目标边缘设备可以是指数据采集设备,例如,可以是摄像头或者抓拍机,还可以是地质灾害监控系统中地质数据采集设备等等。
在本申请中,目标边缘设被将采集到的数据发送给后端的服务器,后端的服务器对该目标边缘设备发送的数据进行持续的分析和处理,因此,目标边缘设备采集的任务(数据)一般通过固定的服务器处理,因此,在对目标边缘设备任务的每一次调度中,一般需要将目标边缘设备固定路由到后端的同一个服务器。
在本申请中,目标边缘设备标识可以用于标识目标边缘设备的身份,具体的,目标边缘设备标识可以是指目标边缘设备的编号,也可以是指目标边缘设备的位置,还可以是指目标边缘设备的注册ID等等。
继续参照图2,在步骤230至步骤250中,在预设存储区中确定事先建立的边缘设备标识和服务器标识之间的映射关系;基于所述映射关系,确定与所述目标边缘设备标识相关联的目标服务器标识。
在本申请中,预设存储区可以是存储数据库,例如mysql,也可以是redis等各种缓存。
在本申请中,预设存储区中可以存储有包括目标边缘设备标识在内的多个边缘设备标识和包括目标服务器标识在内的多个服务器标识之间的映射关系,其中,一个服务器标识对应至少一个边缘设备标识。
对于本领域技术人员而言,本申请中可以包括有目标边缘设备在内多个边缘设备和包括目标服务器在内的多个服务器。
在本申请中,目标服务器标识可以用于标识目标服务器的身份,具体的,目标服务器标识可以是指目标服务器的编号,也可以是指目标服务器的位置,还可以是指目标服务器的注册ID等等。
在本申请的一个实施例中,在基于所述映射关系,确定与所述目标边缘设备标识相关联的目标服务器标识之前,还可以执行如图3所示的步骤。
参见图3,示出了根据本申请的一个实施例的确定与所述目标边缘设备标识相关联的目标服务器标识之前的方法流程图。具体包括步骤241至步骤243:
步骤241,在所述预设存储区不存在与所述目标边缘设备标识相关联的目标服务器标识时,在各个服务器中确定一个待选服务器,所述待选服务器用于处理所述目标任务。
步骤242,建立所述目标边缘设备标识与所述待选服务器的服务器标识之间的映射关系。
步骤243,将所述目标边缘设备标识与所述待选服务器的服务器标识之间的映射关系存储至所述预设存储区。
在本申请中,当所述预设存储区不存在与所述目标边缘设备标识相关联的目标服务器标识时,则可以认为上传目标任务的目标边缘设备为新接入的边缘设备,预设存储区中没有记录过目标边缘设备标识与服务器标识之间的映射关系。
基于此,需要为目标边缘设备分配一个待选服务器,建立目标边缘设备标识与待选服务器的服务器标识之间的映射关系,并将该映射关系存储至预设存储区。
在本实施例的一个具体实现中,在各个服务器中确定一个待选服务器可以按照如图4所示的步骤执行。
参见图4,示出了根据本申请的一个实施例的在各个服务器中确定一个待选服务器的细节流程图。具体包括步骤2411至步骤2412:
步骤2411,分别获取各个服务器的可用负载值,所述可用负载值用于表征服务器处理任务的能力。
步骤2412,将所述可用负载值最高的服务器确定为所述待选服务器。
具体的,例如,每个服务器的最初始的可用负载值为“100”,在一个示例中,包括有服务器A、服务器B、服务器C、服务器D以及服务器E,其中,5个服务器对应的可用负载值分别为“服务器A:36、服务器B:56、服务器C:42、服务器D:81、服务器E:77”。那么,可以将服务器D确定为所述待选服务器。
在本实施例的一个具体实现中,在各个服务器中确定一个待选服务器还可以按照如图5所示的步骤执行。
参见图5,示出了根据本申请的一个实施例的在各个服务器中确定一个待选服务器的细节流程图。具体包括步骤2413至步骤2415:
步骤2413,分别获取各个服务器的可用负载值,所述可用负载值用于表征服务器处理任务的能力。
步骤2414,根据各个服务器的可用负载值,分别确定各个服务器被确定为待选服务器的选择概率值。
步骤2415,基于各个服务器的选择概率值,在各个服务器中确定一个待选服务器。
具体的,例如,每个服务器的最初始的可用负载值为“100”,在一个示例中,包括有服务器A、服务器B、服务器C、服务器D以及服务器E,其中,5个服务器对应的可用负载值分别为“服务器A:36、服务器B:56、服务器C:42、服务器D:81、服务器E:77”,对此,可以确定每一个服务器被确定为待选服务器的选择概率值分别为:“
服务器A:36/(36+56+42+81+77)=12%、
服务器B:56/(36+56+42+81+77)=19%、
服务器C:42/(36+56+42+81+77)=15%、
服务器D:81/(36+56+42+81+77)=28%、
服务器E:77/(36+56+42+81+77)=26%”。
因此,服务器A在12%的概率上被确定为待选服务器、服务器B在19%的概率上被确定为待选服务器、服务器C在15%的概率上被确定为待选服务器、服务器D在28%的概率上被确定为待选服务器、服务器E在26%的概率上被确定为待选服务器。
需要说明的是,在本实施例中,所述服务器的可用负载值的获取方法可以包括如下任意一种:
第一种、将服务器中的单位时间内运行队列中的平均线程数的倒数确定为所述可用负载值。
第二种、将服务器中已关联的边缘设备的数量的倒数确定为所述可用负载值。
第三种、将服务器中CPU利用率的倒数确定为所述可用负载值。
第四种、将服务器中的磁盘剩余空间确定为所述可用负载值。
第五种、将服务器内存剩余空间确定为所述可用负载值。
需要说明的是,在本申请中,可用负载值越大,则说明服务器处理任务的能力越强。
在本实施例中,通过上述两种具体实现方式,在各个服务器中确定一个用于接入新的边缘设备的待选服务器,其好处在于,基于各个服务器的可用负载值,可以充分保证各个服务器的负载均衡,提高各个服务器在运行时稳定性。
在本申请的一个实施例中,在所述目标服务器出现故障时,可以执行如图6所示的步骤。
参见图6,示出了根据本申请的一个实施例的在所述目标服务器出现故障时的方法流程图。具体包括步骤261至步骤262:
步骤261,获取所述目标服务器中的至少一个任务。
步骤262,根据除所述目标服务器之外的其它服务器的可用负载值,将所述至少一个任务均衡调度至除所述目标服务器之外的其它服务器。
在本申请中,目标服务器对应接入有至少一个边缘设备,因此目标服务器应该需要处理至少一个任务,在目标服务器出现故障时,则需要将目标服务器中的至少一个任务转移至其它服务器。这样做的好处在,可以较好的应对诸如目标服务器出现故障等情况的突发状况,从而保证任务处理的正常进行。
在本实施例中,在步骤261获取所述目标服务器中的至少一个任务之前,还可以针对所述目标服务器进行告警提示,以提醒运维人员对该突发状况的处理进行监控,进一步保证任务处理的正常进行。
在本申请的一个实施例中,在各个服务器的可用负载值低于预定阈值时,可以执行如图7所示的步骤。
参见图7,示出了根据本申请的一个实施例的在各个服务器的可用负载值低于预定阈值时的方法流程图。具体包括步骤263至步骤264:
步骤263,配置一个初始服务器。
步骤264,为所述初始服务器确定一个初始的可用负载值。
在本申请中,为所述初始服务器确定一个初始的可用负载值,可以是为每台初始服务器都自动分配100的可用负载值,也可以是根据初始服务器的性能调整不同性能初始服务器的可用负载值,还可以通过实际使用的情况调整初始服务器的可用负载值。
继续参照图2,在步骤270中,将所述目标任务路由至与所述目标服务器标识对应的目标服务器,以通过所述目标服务器处理所述目标任务。
具体的,例如,目标服务器在接收到目标边缘设备的任务之后,可对同一个数据进行连续分析,如视频数据中目标物的轨迹分析等。
从任务接收端的角度进行阐述:
本实施例提供了一种任务调度方法。
参见图8,示出了根据本申请的一个实施例的任务调度方法的流程图,该任务调度方法可以由具有计算处理功能的设备来执行,比如可以由图1中所示的服务器105来执行。参照图8所示,该任务调度方法至少包括步骤810至步骤830,详细介绍如下:
在步骤810中,接收由至少一个边缘设备发送的任务,得到至少一个任务。
在步骤830中,根据各个任务调度端所承载的调度负载,将所述至少一个任务分发至各个任务调度端,以使得每一个任务调度端执行如图2所示步骤的任务调度方法及各种可选实现方式中提供的方法。
在本申请中,对于接入大规模的边缘设备来说,任务接收端主要用于负责统一接入入口,以接收来自各个边缘设备发送的任务,并将任务自动调度到任务调度端。
需要说明的是,在任务接收端将所述至少一个任务分发至各个任务调度端的过程中,任务接收端可以考虑各个任务调度端所承载的任务调度负荷,将所述至少一个任务均衡分发至各个任务调度端。
为了使本领域技术人员更加直观的理解本申请提出的任务调度方法,下面将通过图9,并结合云技术的应用场景对本申请中的任务调度方法进行整体阐述:
图9示出了根据本申请的一个实施例的实施任务调度方法的系统框架图。
在本申请中,如图9所示,本实施例中实施任务调度方法的系统框架包括边缘设备群901、云端任务调度层902、云端服务器群903,其中,边缘设备群901中包括有多个边缘设备,云端任务调度层902中包括一个任务接收端、任务调度端、以及一个预设存储区,云端服务器群903,中包括有多个服务器。
需要说明的是,在本申请中,一个或者多个边缘设备与一个固定的服务器绑定,以使得该服务器处理和分析所述一个或者多个边缘设备的任务。
具体的,在边缘设备群901中,各个边缘设备在采集到数据(摄像机监控到的视频数据)之后,将任务(数据)发送给云端任务调度层902的唯一入口。
在云端任务调度层902中,任务接收端接收由各个边缘设备发送的任务,得到至少一个任务,然后任务接收端根据各个任务调度端所承载的调度负载,将所述至少一个任务均衡分发至各个任务调度端。
需要说明的是,每一个任务中均包含一个边缘设备的设备标识。
对于每一个任务调度端而言,在获取来自目标边缘设备的任务之后,在预设存储区中确定事先建立的边缘设备标识和服务器标识之间的映射关系,并基于所述映射关系,确定与任务中的边缘设备标识相关联的目标服务器标识,并将该目标任务路由至与所述目标服务器标识对应的目标服务器,以通过所述目标服务器处理所述目标任务。
需要说明的是,例如,如果边缘设备群901中的边缘设备F是一个新接入的边缘设备,那么,在预设存储区中就不会存在与边缘设备F的标识相关联的服务器标识,因此需要为边缘设备F绑定一个服务器。
在上述绑定过程中,任务调度端分别获取各个服务器的可用负载值,并基于各个服务器的可用负载值,根据负载均衡的原则,在各个服务器中确定一个待选服务器,所述待选服务器用于处理所述目标任务。此外,任务调度端还建立所述目标边缘设备标识与所述待选服务器的服务器标识之间的映射关系,并将所述目标边缘设备标识与所述待选服务器的服务器标识之间的映射关系存储至所述预设存储区。
在本申请中,对于大规模接入设备而言,本申请提出的技术方案既能够自动实现边缘设备到服务器的固定映射,又能实现边缘设备的自动接入和运维,同时仅需少量的数据存储或缓存区,兼顾提高可用性和降低成本(包括人工运维成本和硬件成本)的考虑,特别是在有大量设备接入,且有大量数据需要分析但这类数据又不需要持久化的场景,更能凸显这种方案的优越性。
本申请提出的技术方案还能兼顾后端服务器负载能力,将任务均衡调度到相关服务器,以便提高服务的稳定性和可用性。
在本申请的一些实施例所提供的技术方案中,一方面,由于预设存储区中的边缘设备标识和服务器标识之间的映射关系,故可以实现固定服务器寻址的自动调度策略,从而可以实现边缘设备发送的任务与服务器之间的自动接入和维护,另一方面,由于边缘设备标识和服务器标识之间的映射关系的数据大小要远远小于各个设备上传的数据任务的数据大小,因此不会对存储有较高的要求,进而降低对任务特别是数据处理任务的调度成本,即降低硬件成本。以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的任务调度方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的任务调度方法的实施例。
图10示出了根据本申请的一个实施例的任务调度装置的框图。
参照图10所示,根据本申请的一个实施例的任务调度装置1000,所述装置设置于任务调度端,所述装置包括:第一获取单元1001、第一确定单元1002、第二确定单元1003和路由单元1004。
其中,第一获取单元1001,被用于获取来自目标边缘设备的目标任务,所述目标任务中包括所述目标边缘设备的目标边缘设备标识;第一确定单元1002,被用于在预设存储区中确定事先建立的边缘设备标识和服务器标识之间的映射关系;第二确定单元1003,被用于基于所述映射关系,确定与所述目标边缘设备标识相关联的目标服务器标识;路由单元1004,被用于将所述目标任务路由至与所述目标服务器标识对应的目标服务器,以通过所述目标服务器处理所述目标任务。
在本申请的一些实施例中,基于前述方案,所述装置还包括:第三确定单元,被用于在基于所述映射关系,确定与所述目标边缘设备标识相关联的目标服务器标识之前,在所述预设存储区不存在与所述目标边缘设备标识相关联的目标服务器标识时,在各个服务器中确定一个待选服务器,所述待选服务器用于处理所述目标任务;建立单元,被用于建立所述目标边缘设备标识与所述待选服务器的服务器标识之间的映射关系;存储单元,被用于将所述目标边缘设备标识与所述待选服务器的服务器标识之间的映射关系存储至所述预设存储区。
在本申请的一些实施例中,基于前述方案,所述第三确定单元配置为:分别获取各个服务器的可用负载值,所述可用负载值用于表征服务器处理任务的能力;将所述可用负载值最高的服务器确定为所述待选服务器。
在本申请的一些实施例中,基于前述方案,所述第三确定单元配置为:分别获取各个服务器的可用负载值,所述可用负载值用于表征服务器处理任务的能力;根据各个服务器的可用负载值,分别确定各个服务器被确定为待选服务器的选择概率值;基于各个服务器的选择概率值,在各个服务器中确定一个待选服务器。
在本申请的一些实施例中,所述服务器的可用负载值的获取方法包括如下任意一种:将服务器中的单位时间内运行队列中的平均线程数的倒数确定为所述可用负载值;将服务器中已关联的边缘设备的数量的倒数确定为所述可用负载值;将服务器中CPU利用率的倒数确定为所述可用负载值;将服务器中的磁盘剩余空间确定为所述可用负载值;将服务器内存剩余空间确定为所述可用负载值。
在本申请的一些实施例中,基于前述方案,所述装置还包括:第二获取单元,被用于在所述目标服务器出现故障时,获取所述目标服务器中的至少一个任务;调度单元,被用于根据除所述目标服务器之外的其它服务器的可用负载值,将所述至少一个任务均衡调度至除所述目标服务器之外的其它服务器。
在本申请的一些实施例中,基于前述方案,所述装置还包括:配置单元,被用于在各个服务器的可用负载值低于预定阈值时,配置一个初始服务器;第四确定单元,被用于为所述初始服务器确定一个初始的可用负载值。
图11示出了根据本申请的一个实施例的任务调度装置的框图。
参照图11所示,根据本申请的一个实施例的任务调度装置1100,所述装置设置于任务接收端,所述装置包括:接收单元1101和分发单元1102。
其中,接收单元1101,被用于接收由至少一个边缘设备发送的任务,得到至少一个任务;分发单元1102,被用于根据各个任务调度端所承载的调度负载,将所述至少一个任务分发至各个任务调度端,以使得每一个任务调度端执行如图2所示步骤的任务调度方法及各种可选实现方式中提供的方法。
图12示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图12示出的电子设备的计算机系统1200仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图12所示,计算机系统1200包括中央处理单元(Central Processing Unit,CPU)1201,其可以根据存储在只读存储器(Read-Only Memory,ROM)1202中的程序或者从储存部分1208加载到随机访问存储器(Random Access Memory,RAM)1203中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1203中,还存储有系统操作所需的各种程序和数据。CPU 1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(Input/Output,I/O)接口1205也连接至总线1204。
以下部件连接至I/O接口1205:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1207;包括硬盘等的储存部分1208;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至I/O接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入储存部分1208。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被中央处理单元(CPU)1201执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中所述的方法。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (10)

1.一种任务调度方法,所述方法执行于任务调度端,其特征在于,所述方法包括:
获取来自目标边缘设备的目标任务,所述目标任务中包括所述目标边缘设备的目标边缘设备标识;
在预设存储区中确定事先建立的边缘设备标识和服务器标识之间的映射关系;
基于所述映射关系,确定与所述目标边缘设备标识相关联的目标服务器标识;
将所述目标任务路由至与所述目标服务器标识对应的目标服务器,以通过所述目标服务器处理所述目标任务。
2.根据权利要求1所述的方法,其特征在于,在基于所述映射关系,确定与所述目标边缘设备标识相关联的目标服务器标识之前,所述方法还包括:
在所述预设存储区不存在与所述目标边缘设备标识相关联的目标服务器标识时,在各个服务器中确定一个待选服务器,所述待选服务器用于处理所述目标任务;
建立所述目标边缘设备标识与所述待选服务器的服务器标识之间的映射关系;
将所述目标边缘设备标识与所述待选服务器的服务器标识之间的映射关系存储至所述预设存储区。
3.根据权利要求2所述的方法,其特征在于,所述在各个服务器中确定一个待选服务器,包括
分别获取各个服务器的可用负载值,所述可用负载值用于表征服务器处理任务的能力;
将所述可用负载值最高的服务器确定为所述待选服务器。
4.根据权利要求2所述的方法,其特征在于,所述在各个服务器中确定一个待选服务器,包括;
分别获取各个服务器的可用负载值,所述可用负载值用于表征服务器处理任务的能力;
根据各个服务器的可用负载值,分别确定各个服务器被确定为待选服务器的选择概率值;
基于各个服务器的选择概率值,在各个服务器中确定一个待选服务器。
5.根据权利要求3或4所述的方法,其特征在于,所述服务器的可用负载值的获取方法包括如下任意一种:
将服务器中的单位时间内运行队列中的平均线程数的倒数确定为所述可用负载值;
将服务器中已关联的边缘设备的数量的倒数确定为所述可用负载值;
将服务器中CPU利用率的倒数确定为所述可用负载值;
将服务器中的磁盘剩余空间确定为所述可用负载值;
将服务器内存剩余空间确定为所述可用负载值。
6.根据权利要求3或4所述的方法,其特征在于,在所述目标服务器出现故障时,所述方法还包括:
获取所述目标服务器中的至少一个任务;
根据除所述目标服务器之外的其它服务器的可用负载值,将所述至少一个任务均衡调度至除所述目标服务器之外的其它服务器。
7.根据权利要求3或4所述的方法,其特征在于,在各个服务器的可用负载值低于预定阈值时,所述方法还包括:
配置一个初始服务器;
为所述初始服务器确定一个初始的可用负载值。
8.一种任务调度方法,所述方法执行于任务接收端,其特征在于,所述方法包括:
接收由至少一个边缘设备发送的任务,得到至少一个任务;
根据各个任务调度端所承载的调度负载,将所述至少一个任务分发至各个任务调度端,以使得每一个任务调度端执行如权利要求1至7所述的任务调度方法。
9.一种任务调度装置,所述装置设置于任务调度端,其特征在于,所述装置包括:
第一获取单元,被用于获取来自目标边缘设备的目标任务,所述目标任务中包括所述目标边缘设备的目标边缘设备标识;
第一确定单元,被用于在预设存储区中确定事先建立的边缘设备标识和服务器标识之间的映射关系;
第二确定单元,被用于基于所述映射关系,确定与所述目标边缘设备标识相关联的目标服务器标识;
路由单元,被用于将所述目标任务路由至与所述目标服务器标识对应的目标服务器,以通过所述目标服务器处理所述目标任务。
10.一种任务调度装置,所述装置设置于任务接收端,其特征在于,所述装置包括:
接收单元,被用于接收由至少一个边缘设备发送的任务,得到至少一个任务;
分发单元,被用于根据各个任务调度端所承载的调度负载,将所述至少一个任务分发至各个任务调度端,以使得每一个任务调度端执行如权利要求1至7所述的任务调度方法。
CN202011076584.2A 2020-10-10 2020-10-10 任务调度方法、装置 Pending CN112148458A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011076584.2A CN112148458A (zh) 2020-10-10 2020-10-10 任务调度方法、装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011076584.2A CN112148458A (zh) 2020-10-10 2020-10-10 任务调度方法、装置

Publications (1)

Publication Number Publication Date
CN112148458A true CN112148458A (zh) 2020-12-29

Family

ID=73952840

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011076584.2A Pending CN112148458A (zh) 2020-10-10 2020-10-10 任务调度方法、装置

Country Status (1)

Country Link
CN (1) CN112148458A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113946429A (zh) * 2021-11-03 2022-01-18 重庆邮电大学 一种基于成本效益的Kubernetes Pod调度方法
CN115408396A (zh) * 2022-09-02 2022-11-29 金蝶征信有限公司 业务数据的存储方法、装置、计算机设备和存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113946429A (zh) * 2021-11-03 2022-01-18 重庆邮电大学 一种基于成本效益的Kubernetes Pod调度方法
CN115408396A (zh) * 2022-09-02 2022-11-29 金蝶征信有限公司 业务数据的存储方法、装置、计算机设备和存储介质
CN115408396B (zh) * 2022-09-02 2024-04-05 金蝶征信有限公司 业务数据的存储方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
US9654928B2 (en) Tracking information technology (IT) assets
CN109408205B (zh) 基于hadoop集群的任务调度方法和装置
US9852035B2 (en) High availability dynamic restart priority calculator
CN109034396B (zh) 用于处理分布式集群中的深度学习作业的方法和装置
CN106933669B (zh) 用于数据处理的装置和方法
US20210342193A1 (en) Multi-cluster container orchestration
US20140089509A1 (en) Prediction-based provisioning planning for cloud environments
US20200218579A1 (en) Selecting a cloud service provider
US9420562B1 (en) Tracking information technology (IT) assets
CN109729106B (zh) 处理计算任务的方法、系统和计算机程序产品
US20150143382A1 (en) Scheduling workloads and making provision decisions of computer resources in a computing environment
US20170270179A1 (en) Providing global metadata in a cluster computing environment
US10411977B2 (en) Visualization of workload distribution on server resources
CN111679911B (zh) 云环境中gpu卡的管理方法、装置、设备及介质
US11907766B2 (en) Shared enterprise cloud
CN112463375A (zh) 一种数据处理的方法和装置
CN111427678A (zh) 汽车诊断云平台中的虚拟化资源调度系统、方法
CN112148458A (zh) 任务调度方法、装置
CN113553178A (zh) 任务处理方法、装置和电子设备
US20230222004A1 (en) Data locality for big data on kubernetes
CN116402318B (zh) 面向配电网的多级算力资源分配方法、装置及网络架构
CN113760499A (zh) 调度计算单元的方法、装置、计算设备及介质
CN107045452B (zh) 虚拟机调度方法和装置
US11755379B2 (en) Liaison system and method for cloud computing environment
CN111190731A (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