掌桥专利:专业的专利平台
掌桥专利
首页

基于函数特征的服务器无感知计算调度方法和装置

文献发布时间:2024-04-18 19:58:30


基于函数特征的服务器无感知计算调度方法和装置

技术领域

本申请涉及云计算服务技术领域,特别涉及一种基于函数特征的服务器无感知计算调度方法、装置、电子设备及计算机可读存储介质。

背景技术

云计算服务目前已逐渐成为一种主流的计算需求解决方式,用户通过云计算平台提供的虚拟机等载体,实现相关应用的开发部署及资源管理。其中作为一种新兴的以函数为中心的云计算范式,服务器无感知计算能够自动为用户完成资源的配置与管理,使开发者只专注于应用的函数编写。

相关技术中,用户发送的函数请求会经过调度器进行统一调配,并通过该服务器进行处理。从函数请求到函数执行所需的时间称作函数完成时间,是衡量服务器无感知计算平台的重要指标,其受到函数执行时间和冷启动开销的影响。

但现有的服务器无感知计算调度工作,未能针对包含多个函数请求的函数队列综合考虑函数的冷启动时间带来的影响,常常因调度顺序不佳造成对头堵塞的问题,系统调度的运行结果效率低下。

发明内容

本申请实施例提供一种基于函数特征的服务器无感知计算调度方法和装置,以解决现有技术中服务器无感知计算调度工作的运行结果效率低下问题。

第一方面,本申请实施例提供了一种服务器调度方法,应用于调度控制单元,所述方法包括:

获取用户的函数请求以及函数服务器发送的监控信息,并将所述函数请求保存至函数请求队列,所述监控信息用于表征所述函数服务器所在的服务器集群的运行状态,所述服务器集群包括至少两个函数服务器;

根据所述监控信息确定所述服务器集群当前用于处理函数请求的空闲资源量,以及处理所述函数请求队列中各函数请求所需的预期完成时间,所述空闲资源量用于表征当前处于空闲状态的函数服务器的可用资源量;

根据所述空闲资源量以及所述预期完成时间,从所述函数请求队列中选取待处理的目标函数请求,以及用于处理目标函数请求的目标函数服务器;

依照所述目标函数请求生成调度指令并发送至目标函数服务器,以供所述目标函数服务器根据所述调度指令对所述目标函数请求进行处理。

第二方面,本申请实施例提供了一种服务器调度方法,其特征在于,应用于函数服务器,所述函数服务器所属于服务器集群,所述方法包括:

在确定服务器集群的状态符合预设条件的情况下,获取监控信息,所述监控信息用于表征所述函数服务器所在的服务器集群的运行状态;

将所述监控信息发送至调度控制单元,以供所述调度控制单元根据所述监控信息生成对应的调度指令;

在接收到所述调度控制单元响应于所述监控信息发送的调度指令的情况下,处理所述调度指令指定的目标函数请求。

第三方面,本申请实施例提供了一种应用于调度控制单元的服务器调度装置,所述装置包括:

第一获取模块,用于获取用户的函数请求以及函数服务器发送的监控信息,并将所述函数请求保存至函数请求队列,所述监控信息用于表征所述函数服务器所在的服务器集群的运行状态,所述服务器集群包括至少两个函数服务器;

调度分析模块,用于根据所述监控信息确定所述服务器集群当前用于处理函数请求的空闲资源量,以及处理所述函数请求队列中各函数请求所需的预期完成时间,所述空闲资源量用于表征当前处于空闲状态的函数服务器的可用资源量;

目标对象确定模块,用于根据所述空闲资源量以及所述预期完成时间,从所述函数请求队列中选取待处理的目标函数请求,以及用于处理目标函数请求的目标函数服务器;

调度指令发送模块,用于依照所述目标函数请求生成调度指令并发送至目标函数服务器,以供所述目标函数服务器根据所述调度指令对所述目标函数请求进行处理。

第四方面,本申请实施例提供了一种应用于函数服务器的服务器调度装置,所述函数服务器所属于服务器集群,所述装置包括:

第二获取模块,用于在确定服务器集群的状态符合预设条件的情况下,获取监控信息,所述监控信息用于表征所述函数服务器所在的服务器集群的运行状态;

监控系信息发送模块,用于将所述监控信息发送至调度控制单元,以供所述调度控制单元根据所述监控信息生成对应的调度指令;

调度指令响应模块,用于在接收到所述调度控制单元响应于所述监控信息发送的调度指令的情况下,处理所述调度指令指定的目标函数请求。

第五方面,本申请实施例提供了一种电子设备,包括:处理器;

用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述指令,以实现所述的服务器调度方法。

第六方面,本申请实施例提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行所述的服务器调度方法。

在本申请实施例中,在调度控制单元接收到用户发送的函数处理请求的情况下,获取针对函数服务器所在的服务器集群的监控信息,该监控信息用于表征服务器集群当前的运行状态。由调度控制单元根据监控信息确定服务器集群当前用于处理函数请求的空闲资源量,以及处理函数请求队列中各函数请求所需的预期完成时间,从而选取即将进行处理的目标函数请求与对应的目标函数服务器。据此生成调度指令并发送至目标函数服务器,以供目标函数服务器根据调度指令对目标函数请求进行处理。通过实时分析函数处理需求的相关特征与函数服务器空闲资源状态,在时间维度上基于函数执行时间和缓存情况两种信息优化用户函数执行效率;在空间维度上考虑函数资源占有量对整体函数请求完成时间的影响,从而实现对平均函数请求完成时间的大幅度优化。

上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是本申请实施例提供的一种服务器调度方法的简要实施步骤流程图;

图2是本申请实施例提供的一种基于函数特征的服务器无感知计算调度平台功能模块组成示意图;

图3是本申请实施例提供的另一种服务器调度方法的简要实施步骤流程图;

图4是本申请实施例提供的一种服务器调度方法的完整实施步骤交互关系图;

图5是本申请实施例提供的一种服务器调度方法的系统运行流程示意图;

图6是本申请实施例提供的一种调度算法的效果对比图;

图7是本申请实施例提供的一种服务器调度装置的功能模块组成示意图;

图8是本申请实施例提供的另一种服务器调度装置的功能模块组成示意图;

图9是本申请实施例提供的一种电子设备的功能组件关系图;

图10是本申请实施例提供的另一种电子设备的功能组件关系图。

具体实施方式

下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。

参照图1,图1是本申请实施例提供的一种服务器调度方法的简要实施步骤流程图,该方法应用于调度控制单元。如图1所示,所述方法的步骤包括:

步骤101、获取用户的函数请求以及函数服务器发送的监控信息,并将所述函数请求保存至函数请求队列,所述监控信息用于表征所述函数服务器所在的服务器集群的运行状态,所述服务器集群包括至少两个函数服务器。

本申请实施例提供的一种服务器调度方法,应用于云计算服务环境,该服务环境主要包括有多个函数服务器的服务器集群及调度控制单元。在有多个用户向系统发起函数处理请求的情况下,由调度控制单元接收函数服务器发送的监控信息,并将外部用户提交的函数请求以队列的形式进行储存。该监控信息用于表征函数服务器所在的服务器集群当前的运行状态。需要说明的是,一个用户发出的单个函数处理请求只需要一个函数服务器进行处理,但在同一时间单个用户可同时向多个不同的函数服务器提交函数处理请求。

参照图2,示出了本申请实施例提供的一种基于函数特征的服务器无感知计算调度平台功能模块组成示意图。如图2所示,其中主要包括控制平面与函数服务器,所述控制平面即对应上述调度控制单元。

该调度控制单元主要包括:调度器、资源管理器及时间预测器;其中,执行时间预测器负责根据历史信息预测特定用户请求的执行时间和冷启动开销;资源管理器则负责维护任意时间点服务器空闲资源及镜像缓存情况;调度器则负责根据执行时间预测器和资源管理器提供的任务信息,通过基于函数特征的服务器无感知调度算法对任务队列内的用户请求进行调度,并给出任务执行方案。

而函数服务器负责根据调度器的调度决策执行服务器无感知用户函数请求,同时向服务器内的运行时监测器报告用户函数的执行时间与冷启动开销,并汇报本服务器的资源使用情况,包括空闲资源量和镜像缓存情况,以帮助控制平面更新调度信息。

步骤102、根据所述监控信息确定所述服务器集群当前用于处理函数请求的空闲资源量,以及处理所述函数请求队列中各函数请求所需的预期完成时间,所述空闲资源量用于表征当前处于空闲状态的函数服务器的可用资源量。

承接上述步骤101所述内容,用户的函数请求在到来后会被发往调度器,由调度器负责在服务器集群中找到空闲的函数服务器,并在空闲函数服务器上加载相应的函数镜像,以此将函数镜像启动为一个函数实例来处理该请求。

当加载函数镜像时,函数服务器需要通过网络从专门的镜像存储系统将所需函数镜像传输到本地并启动,这一过程称为冷启动,冷启动通常耗时较大。为了优化函数启动时间,调度器通常会在服务器本地对函数镜像进行缓存,以跳过函数镜像的加载过程,此时称之为热启动。而处理函数请求的预期完成时间则包含函数执行时间和冷启动开销,函数执行时间指函数镜像加载和启动后,函数实例处理请求的时间;冷启动开销是指未进行函数镜像缓存所导致的额外加载与启动时间。

根据函数服务器发送的监控信息可以确定当前服务器及群整体的运行状态(包括空闲资源大小、已部署缓存的函数镜像种类与数目等),同时也包括部分函数服务器处理历史函数请求时的操作记录信息(如函数执行时间与冷启动开销)。

步骤103、根据所述空闲资源量以及所述预期完成时间,从所述函数请求队列中选取待处理的目标函数请求,以及用于处理目标函数请求的目标函数服务器。

在根据监控信息确定服务器集群的空闲资源量及针对单项函数处理请求所需的预期完成时间后,调度器依照基于函数特征的调度算法制定后续任务执行方案,以优化用户请求的平均任务完成时间。

现有基于服务器无感知计算的常用调度方案所使用的函数调度方案包括:先来先服务(FCFS,first come first serve)算法,顾名思义按照函数请求位于队列中的先后顺序依次进行处理,但当队头请求的函数执行时间很长,或者本地没有该函数镜像的缓存,冷启动时间很长时,会导致队头阻塞,排在队列后面的请求需要等待很久才能被执行,使得整个系统的平均函数完成时间变长。最短任务优先(SJF,shortest job first)策略是一种经典的解决队头阻塞问题的策略。然而,在服务器无感知计算场景下,经典的最短任务优先策略不能完全解决队头阻塞问题,因为排在队头的请求可能因为冷启动时间较长而拖慢完成时间,影响队列后面请求的执行,仍旧造成队头阻塞。

上述惯用方法均未能够将函数的冷启动与调度进行综合考虑,仍会面临由于调度顺序不佳造成队头阻塞的问题。而本申请提供的基于函数特征的服务器无感知计算调度器,综合考虑了时间层面基于函数执行时间和缓存情况两种信息优化用户函数执行效率,以及空间层面函数资源占有量对整体函数完成时间的影响两个维度的特征进行函数请求队列处理调度,从而实现对平均函数完成时间的大幅度优化。

步骤104、依照所述目标函数请求生成调度指令并发送至目标函数服务器,以供所述目标函数服务器根据所述调度指令对所述目标函数请求进行处理。

在函数请求队列中选取目标函数请求作为下一个待处理的函数请求,并选择与该函数请求的特征匹配的目标函数服务器作为运行环境处理该请求,能够最优化利用已有空闲资源。

每当外部任务请求到来,或内部某一任务执行结束、集群内空闲资源增加时,调度器就会运行基于函数特征的调度算法。算法将进行多轮迭代。每一次迭代中,调度器会首先与上述执行时间预测器和资源管理器进行交互,以获得当前资源使用情况以及当前任务队列中所有任务的预期完成时间。而后,根据上述信息以及当前排队任务的资源需求信息,调度器将根据基于函数特征的调度算法指定下一个运行的任务请求及其部署位置,生成调度指令并将调度指令发送至目标函数服务器。在此过程中,算法将反复迭代直至不存在排队的用户请求或者集群内的剩余空间不足以运行任何用户请求。

综上所述,本申请实施例提供的一种应用于调度控制单元的服务器调度方法,首先接收由函数服务器在满足预设条件的情况下发送的监控信息与用户发送的函数请求,并根据监控信息确定服务器集群当前用于处理函数请求的空闲资源量,以及处理函数请求队列中各函数请求所需的预期完成时间,从而选取即将进行处理的目标函数请求与对应的目标函数服务器。据此生成调度指令并发送至目标函数服务器,以供目标函数服务器根据调度指令对目标函数请求进行处理。通过实时分析函数处理需求的相关特征与函数服务器空闲资源状态,在时间维度上基于函数执行时间和缓存情况两种信息优化用户函数执行效率;在空间维度上考虑函数资源占有量对整体函数请求完成时间的影响,从而实现对平均函数请求完成时间的大幅度优化。

参照图3,图3是本申请实施例提供的另一种服务器调度方法的简要实施步骤流程图,该方法应用于函数服务器。如图3所示,所述方法的步骤包括:

步骤201、在确定服务器集群的状态符合预设条件的情况下,获取监控信息,所述监控信息用于表征所述函数服务器所在的服务器集群的运行状态。

函数服务器负责执行任务并统计服务器集群的资源情况,包括空闲资源大小以及当前已部署缓存的函数镜像种类与数目。

具体的,在函数请求执行方面,函数服务器将记录每个用户上传的函数请求的执行时间,当发生冷启动时,函数服务器还将记录其冷启动时间,上述时间将被汇报给调度控制单元的运行时监测器。在服务器资源情况方面,函数服务器将时刻监控服务器集群内的空闲资源和可用缓存,并将其汇报给资源管理器。

步骤202、将所述监控信息发送至调度控制单元,以供所述调度控制单元根据所述监控信息生成对应的调度指令。

步骤203、在接收到所述调度控制单元响应于所述监控信息发送的调度指令的情况下,处理所述调度指令指定的目标函数请求。

针对步骤202-步骤203,在将监控信息汇报给调度控制单元后,即可等候调度控制单元的回应信息。若当前函数服务器被选择为目标服务器,则接收并响应于调度控制单元发送的调度指令,自身作为目标函数请求的运行环境并提取该目标函数请求对应的函数镜像缓存对其进行处理。

综上所述,本申请实施例提供的一种应用于函数服务器的服务器调度方法,在所属服务器集群满足预设条件的情况下,获取针对函数服务器所在的服务器集群的监控信息,该监控信息用于表征服务器集群当前的运行状态,并将监控信息同步至调度控制单元。以供调度控制单元根据监控信息选取即将进行处理的目标函数请求与对应的目标函数服务器,并以此据此生成调度指令并发送至目标函数服务器。之后在收到调度指令的情况下处理所述调度指令指定的目标函数请求。通过实时向调度控制单元反馈函数请求的特征信息与函数服务器空闲资源状态,并依照调度控制单元的调度策略进行函数请求处理,在时间维度上基于函数执行时间和缓存情况两种信息优化用户函数执行效率;在空间维度上考虑函数资源占有量对整体函数请求完成时间的影响,从而实现对平均函数请求完成时间的大幅度优化。

参照图4,图4是本申请实施例提供的一种服务器调度方法的完整实施步骤交互关系图。如图4所示,所述方法的步骤包括:

步骤301、函数服务器在确定服务器集群的状态符合预设条件的情况下,获取监控信息,所述监控信息用于表征所述函数服务器所在的服务器集群的运行状态。

具体的,该步骤可参照上述步骤201,本实施例此处不再赘述。

步骤302、函数服务器将所述监控信息发送至调度控制单元,以供所述调度控制单元根据所述监控信息生成对应的调度指令。

具体的,该步骤可参照上述步骤202,本实施例此处不再赘述。

步骤303、调度控制单元获取函数服务器发送的监控信息与函数请求,并将所述函数请求保存至函数请求队列。

具体的,该步骤可参照上述步骤101,本实施例此处不再赘述。

步骤304、调度控制单元根据所述监控信息确定所述服务器集群当前用于处理函数请求的空闲资源量,以及处理所述函数请求队列中各函数请求所需的预期完成时间。

具体的,该步骤可参照上述步骤102,本实施例此处不再赘述。

值得说明的是,传统的最短任务优先算法以任务执行时间为标准,优先调度任务执行时间最小的任务,从而避免了先到达的任务因为执行时间较长阻塞后续任务的问题。与之不同的是,本申请实施例所提供的调度算法同时综合考虑了函数执行时间和函数请求在函数服务器无感知计算平台的启动时间。这一设计的关键在于,细粒度函数的执行时间通常较短,而函数的启动时间反而会对函数任务最终的端到端完成时间产生较大影响。当函数处于热启动状态时,函数可以立刻执行;当函数处于冷启动状态时,即使函数执行时间较短,较长的函数启动时间也会阻塞后继函数。

除时间维度的考量外,本申请实施例所提供的基于函数特征的服务器无感知调度算法,在调度时同样考虑了每个函数的资源占用情况。传统的调度算法,无论是先到达先服务算法或者最短任务优先算法,都是基于时间维度的调度算法。由于在服务器无感知计算环境中,不同函数的资源占用差异较大,如果单纯按照函数运行时间进行任务调度,很难达到较低的平均函数完成时间。例如,一个资源消耗量非常大的函数请求,即使其完成时间很短,也可能会导致很多可以并行执行且资源消耗很少的函数请求被阻塞,进而产生更差的平均函数完成时间。因此,函数的资源消耗情况也是函数调度需要考虑的关键因素。

步骤305、调度控制单元根据所述空闲资源量以及所述预期完成时间,确定所述函数请求的优先级指标。

针对目标函数请求的选取原则,本申请实施例提供了一种新型的函数请求优先级指标P[k],对于使用函数镜像j的函数请求k,调度算法将以各函数请求对应的优先级指标大小选组目标函数请求。

在一种可选的实施例中,所述步骤305还可以包括:

子步骤3051、确定所述空闲资源量的逻辑值与所述预启动时间的乘积,与所述处理执行时间的求和结果。

针对子步骤3051-子步骤3052,在本申请实施例中通过下述公式计算函数请求k的优先级指标P[k]:

P[k]=R[j]×([W[j]>0]×D[j]+E[j]);

其中,W[j]表示服务器集群内与第j个函数请求对应的空闲可执行环境(函数服务器)的数目;E[j]表示函数j所需的执行时间;D[j]表示函数j所需的冷启动时间;R[j]表示处理函数请求j所需的资源需求量。

每当待函数请求队列发生变化(出现新的用户请求时)或服务器集群资源使用情况发生变化(任一用户请求执行完成)时,调度器就会开始执行调度算法。

首先,针对待部署队列中的每一个用户请求k,调度器会首先获取该请求对应函数j的时间、空间特征,并结合资源管理器模块提供的函数j可以被热启动的函数请求数量W[j],来综合计算出该请求的优先级P[k]。

具体的,首先计算确定服务集群内空闲资源量W[j]的逻辑值与预启动时间D[j]的乘积,与处理执行时间E[j]的求和结果。需要说明的是,表达式[W[j]>0]表示一个逻辑真值,在空闲资源量W[j]大于0的情况下,该表达式的值为1,否则其值为0。之后,将求和结果与资源需求量R[j]的乘积结果作为优先级指标P[k]。

子步骤3052、将所述求和结果与所述资源需求量的乘积结果作为所述优先级指标。

步骤306、调度控制单元将所述优先级指标满足预设优先级条件,且资源需求量小于或等于所述空闲资源量的函数请求确定为目标函数请求,并在所述服务器集群中选取与所述特征信息匹配的函数服务器作为目标函数服务器。

承接步骤305,在通过优先级计算公式计算获得函数请求的优先级指标后,即可选取目标函数请求。在本申请实施例中,调度器将优先部署所有待部署函数请求任务中优先级P[k]最小且资源需求量小于等于服务器集群空闲资源量的函数请求。最后,调度器将从资源管理器中获取更新后的用户函数时空特征,并据此重新计算待部署队列中用户请求的优先级,开始下一轮迭代。调度器将反复进行上述调度过程,直至没有剩余排队任务或空闲内存。

在一种可选的实施例中,所述步骤306还可以包括:

子步骤3061、获取单个函数请求位于所述函数请求队列中的排队时间。

子步骤3062、在所述排队时间大于预设时间阈值的情况下,将所述函数请求调入高级优先队列。

子步骤3063、在所述高级优先队列不为空的情况下,直接按照所述高级优先队列中的函数请求次序选择所述目标函数请求。

子步骤3064、在所述高级优先队列为空的情况下,进入到将所述优先级指标满足预设优先级条件,且所述资源需求量小于或等于所述空闲资源量的函数请求确定为目标函数请求的步骤中。

针对子步骤3061-子步骤3062,在本申请实施例中还提供了一种针对调度方法的备用补充方案,当使用基于函数特征的服务器无感知调度算法时,如果优先级P[k]较高(即P[k]的值较小)的函数请求不断到达,服务器无感知计算平台的资源会一直分配给不断到达的高优先级请求,此时可能会导致部分低优先级请求饥饿。

针对该情形,调度器会维护一个更高的优先级队列Q

参照图5,图5是本申请实施例提供的一种服务器调度方法的系统运行流程示意图。如图5所示,在用户发送的外部函数请求到到达的情况下,将所述函数请求加入至等待队列(即函数请求队列),并由调度器获取该函数请求的函数信息以及服务器集群的监控信息。调度器从运行时间检测器和资源管理器中获取函数的执行时间、冷启动时间、函数内存需求以及镜像缓存情况以进行请求调度处理。

在确定存在可部署函数请求的情况下,通过优先级计算公式确定该函数请求的镜像对应的优先级指标,选择优先级最高(也即P[k]值最小)的函数请求为目标函数请求,并生成调度指令将其部署至目标函数服务器(工作服务器)。

在工作服务器(即选取的目标服务器)接收到调度指令的情况下,开始处理执行改请求直至结束。在处理完毕后服务集群的资源状态发生变化,此时重新统计服务器集群资源状态生成监控信息并发送至控制平面,在此过程中服务器通过向运行时检测器发送统计信息,更新用户函数的执行时间、冷启动时间、函数内存需求以及集群的镜像缓存情况,并检查新的空闲内存资源中是否可以运行其他函数请求。

子步骤3065、在确定当前所述空闲资源量中无与所述目标函数请求匹配的函数服务器的情况下,随即选取任一函数服务器作为所述目标函数服务器。

若当前服务器集群的空闲资源量中无与目标函数请求匹配的函数服务器,则随即选取任意一项函数服务器作为目标函数服务器进行请求处理作业。

步骤307、调度控制单元依照所述目标函数请求生成调度指令并发送至目标函数服务器,以供所述目标函数服务器根据所述调度指令对所述目标函数请求进行处理。

具体的,该步骤可参照上述步骤104,本实施例此处不再赘述。

步骤308、函数服务器在接收到所述调度控制单元响应于所述监控信息发送的调度指令的情况下,处理所述调度指令指定的目标函数请求。

具体的,该步骤可参照上述步骤203,本实施例此处不再赘述。

参照图6,示出了本申请实施例提供的一种调度算法的效果对比图。其中图6(a)与图6(b)分别表示以现有方案中的FCFS算法与SJF进行调度处理的时间用量,图6(c)则表示本申请实施例提供的基于时空特征的函数调度的时间用量。在一个只有一单位内存的函数服务器需要服务三个依此到来的不同函数请求F

可以注意到的是,请求F

可以看到,与先来先服务、最短任务优先算法相比,本申请实施例提出算法的函数完成时间最短。这是因为本文提出算法考虑到了缓存机制的影响,会优先执行F

综上所述,本申请实施例提供的一种服务器调度方法,在函数服务器接收到用户发送的函数处理请求的情况下,获取针对函数服务器所在的服务器集群的监控信息,该监控信息用于表征服务器集群当前的运行状态,并将监控信息与函数请求同步至调度控制单元。由调度控制单元根据监控信息确定服务器集群当前用于处理函数请求的空闲资源量,以及处理函数请求队列中各函数请求所需的预期完成时间,从而选取即将进行处理的目标函数请求与对应的目标函数服务器。据此生成调度指令并发送至目标函数服务器,以供目标函数服务器根据调度指令对目标函数请求进行处理。通过实时分析函数处理需求的相关特征与函数服务器空闲资源状态,在时间维度上基于函数执行时间和缓存情况两种信息优化用户函数执行效率;在空间维度上考虑函数资源占有量对整体函数请求完成时间的影响,从而实现对平均函数请求完成时间的大幅度优化。

参照图7,图7是本申请实施例提供的一种服务器调度装置40的功能模块组成示意图,该装置应用于调度控制单元。如图7所示,所述装置包括:

第一获取模块401,用于获取用户的函数请求以及函数服务器发送的监控信息,并将所述函数请求保存至函数请求队列,所述监控信息用于表征所述函数服务器所在的服务器集群的运行状态,所述服务器集群包括至少两个函数服务器;

调度分析模块402,用于根据所述监控信息确定所述服务器集群当前用于处理函数请求的空闲资源量,以及处理所述函数请求队列中各函数请求所需的预期完成时间,所述空闲资源量用于表征当前处于空闲状态的函数服务器的可用资源量;

目标对象确定模块403,用于根据所述空闲资源量以及所述预期完成时间,从所述函数请求队列中选取待处理的目标函数请求,以及用于处理目标函数请求的目标函数服务器;

调度指令发送模块404,用于依照所述目标函数请求生成调度指令并发送至目标函数服务器,以供所述目标函数服务器根据所述调度指令对所述目标函数请求进行处理。

可选的,所述目标对象确定模块403还可以包括:

特征信息获取子模块,用于获取所述函数请求的特征信息,所述特征信息包括处理函数请求的资源需求量;

优先级指标确定子模块,用于根据所述空闲资源量以及所述预期完成时间,确定所述函数请求的优先级指标;

目标函数请求确定子模块,用于将所述优先级指标满足预设优先级条件,且所述资源需求量小于或等于所述空闲资源量的函数请求确定为目标函数请求;

目标函数服务器确定子模块,用于在所述服务器集群中选取与所述特征信息匹配的函数服务器作为目标函数服务器。

可选的,所述优先级指标确定子模块还可以包括:

第一计算单元,用于确定所述空闲资源量的逻辑值与所述预启动时间的乘积,与所述处理执行时间的求和结果;

第二计算单元,用于将所述求和结果与所述资源需求量的乘积结果作为所述优先级指标。

可选的,所述装置还包括:

排队时间确定模块,用于获取单个函数请求位于所述函数请求队列中的排队时间;

函数请求选调模块,用于在所述排队时间大于预设时间阈值的情况下,将所述函数请求调入高级优先队列;

目标函数请求选择模块,用于在所述高级优先队列不为空的情况下,直接按照所述高级优先队列中的函数请求次序选择所述目标函数请求;

目标函数请求确定模块,用于在所述高级优先队列为空的情况下,进入到将所述优先级指标满足预设优先级条件,且所述资源需求量小于或等于所述空闲资源量的函数请求确定为目标函数请求的步骤中。

可选的,所述装置还包括:

目标函数服务器选择模块,用于在确定当前所述空闲资源量中无与所述目标函数请求匹配的函数服务器的情况下,随即选取任一函数服务器作为所述目标函数服务器。

综上所述,本申请实施例提供的一种应用于调度控制单元的服务器调度装置,首先接收由函数服务器在满足预设条件的情况下发送的监控信息与用户的函数请求,并根据监控信息确定服务器集群当前用于处理函数请求的空闲资源量,以及处理函数请求队列中各函数请求所需的预期完成时间,从而选取即将进行处理的目标函数请求与对应的目标函数服务器。据此生成调度指令并发送至目标函数服务器,以供目标函数服务器根据调度指令对目标函数请求进行处理。通过实时分析函数处理需求的相关特征与函数服务器空闲资源状态,在时间维度上基于函数执行时间和缓存情况两种信息优化用户函数执行效率;在空间维度上考虑函数资源占有量对整体函数请求完成时间的影响,从而实现对平均函数请求完成时间的大幅度优化。

参照图8,图8是本申请实施例提供的一种服务器调度装置50的功能模块组成示意图,该装置应用于函数服务器。如图8所示,所述装置包括:

第二获取模块501,用于在确定服务器集群的状态符合预设条件的情况下,获取监控信息,所述监控信息用于表征所述函数服务器所在的服务器集群的运行状态;

监控系信息发送模块502,用于将所述监控信息发送至调度控制单元,以供所述调度控制单元根据所述监控信息生成对应的调度指令;

调度指令响应模块503,用于在接收到所述调度控制单元响应于所述监控信息发送的调度指令的情况下,处理所述调度指令指定的目标函数请求。

可选的,所述装置还包括:

预设条件判定模块,用于在所述函数服务器接收到新的函数处理请求,或所述函数服务器内的单个函数请求处理完成,或所述服务器集群内的空闲资源量增加时,确定所述服务器集群的状态符合预设条件。

综上所述,本申请实施例提供的一种应用于函数服务器的服务器调度装置,在调度控制单元接收到用户发送的函数处理请求的情况下,获取针对函数服务器所在的服务器集群的监控信息,该监控信息用于表征服务器集群当前的运行状态,并将监控信息与函数请求同步至调度控制单元。以供调度控制单元根据监控信息选取即将进行处理的目标函数请求与对应的目标函数服务器,并以此据此生成调度指令并发送至目标函数服务器。之后在收到调度指令的情况下处理所述调度指令指定的目标函数请求。通过实时向调度控制单元反馈函数请求的特征信息与函数服务器空闲资源状态,并依照调度控制单元的调度策略进行函数请求处理,在时间维度上基于函数执行时间和缓存情况两种信息优化用户函数执行效率;在空间维度上考虑函数资源占有量对整体函数请求完成时间的影响,从而实现对平均函数请求完成时间的大幅度优化。

图9是根据一示例性实施例示出的一种电子设备600的框图。例如,电子设备600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。

参照图9,电子设备600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(I/O)的接口612,传感器组件614,以及通信组件616。

处理组件602通常控制电子设备600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。

存储器604用于存储各种类型的数据以支持在电子设备600的操作。这些数据的示例包括用于在电子设备600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,多媒体等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

电源组件606为电子设备600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为电子设备600生成、管理和分配电力相关联的组件。

多媒体组件608包括在所述电子设备600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的分界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当电子设备600处于操作模式,如拍摄模式或多媒体模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件610用于输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当电子设备600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。

I/O接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件614包括一个或多个传感器,用于为电子设备600提供各个方面的状态评估。例如,传感器组件614可以检测到电子设备600的打开/关闭状态,组件的相对定位,例如所述组件为电子设备600的显示器和小键盘,传感器组件614还可以检测电子设备600或电子设备600一个组件的位置改变,用户与电子设备600接触的存在或不存在,电子设备600方位或加速/减速和电子设备600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件616用于便于电子设备600和其他设备之间有线或无线方式的通信。电子设备600可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。

在示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于实现本申请实施例提供的一种服务器调度方法。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由电子设备600的处理器620执行以完成上述方法。例如,所述非临时性存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

图10是根据一示例性实施例示出的一种电子设备700的框图。例如,电子设备700可以被提供为一服务器。参照图10,电子设备700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理组件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行本申请实施例提供的一种服务器调度方法。

电子设备700还可以包括一个电源组件726被配置为执行电子设备700的电源管理,一个有线或无线网络接口750被配置为将电子设备700连接到网络,和一个输入输出(I/O)接口758。电子设备700可以操作基于存储在存储器732的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

相关技术
  • 一种基于边缘计算的多业务处理方法、装置及边缘服务器
  • 基于QoS特征发现的云计算节能调度实现方法
  • 基于互相关函数包络特征点的超声波渡越时间计算方法
  • 基于函数中间表达的无服务器计算调度系统及方法
  • 基于函数中间表达的无服务器计算调度系统及方法
技术分类

06120116498274