任务分配方法和系统与流程

文档序号:11230225阅读:388来源:国知局
任务分配方法和系统与流程

本发明涉及计算机集群技术领域,特别涉及任务分配方法和系统。



背景技术:

集群由多个服务器或处理单元组成,属于同一集群的服务器或处理单元通常由统一的系统管理,通过网络联系起来,并进行同一种服务。负载均衡技术是集群技术的关键技术之一,其能够将请求分摊到多个处理单元上执行,充分利用各处理单元,从而提升系统整体处理能力。目前业界通常采用的任务分配方法包括轮询、加权轮询、ip负载均衡、最小连接数等方法。

然而,采用现有的任务分配方法,在访问量增加、复杂请求增加的情况下,网络系统仍存在整体吞吐量低,部分请求任务长时间得不到响应的问题。



技术实现要素:

本发明提出一种任务分配方法和系统,可提高整体服务器的吞吐量和请求响应速度。

本发明一方面提供了一种任务分配方法,所述方法包括:

当接收到待分配任务的任务请求时,获取所述待分配任务的任务类型;

在获取所述任务类型后,从服务器列表中选择可用服务器;

获取每个所述可用服务器上对具有所述任务类型的任务的资源供需比;

获取每个所述可用服务器上当前执行的具有所述任务类型的任务的数量;

根据每个所述可用服务器上对具有所述任务类型的任务的资源供需比以及当前执行的具有所述任务类型的任务的数量,在所有所述可用服务器中选取待分配服务器;

将所述待分配任务分配到所述待分配服务器去执行。

作为更优选地,所述获取每个所述可用服务器上对具有所述任务类型的任务的资源供需比,包括:

获取可用服务器si上第c种资源的资源空闲率hc(si);

计算可用服务器si上第c种资源的资源空闲率hc(si)与具有所述任务类型的任务对第c种资源的需求值rc的比值,作为具有所述任务类型的任务对第c种资源的资源供需比分量hc(si)/rc;其中,具有所述任务类型的任务对第c种资源的需求值rc为预设值;

将具有所述任务类型的任务对各种资源的资源供需比分量进行求和,以得到可用服务器si上对具有所述任务类型的任务的资源供需比;

其中,所述可用服务器si为所有可用服务器中的任意一个服务器。

在所述方法的一个实施方式中,所述对于可用服务器si,获取可用服务器si上第c种资源的资源空闲率hc(si),包括:

获取可用服务器si上第c种资源的资源空闲量vc(si);

获取可用服务器si上第c种资源的资源总量uc(si);

计算可用服务器si上第c种资源的资源空闲量vc(si)与可用服务器si上第c种资源的资源总量uc(si)的比值,作为可用服务器si上第c种资源的资源空闲率hc(si)。

在所述方法的一个实施方式中,所述获取可用服务器si上第c种资源的资源空闲量vc(si),包括:

从本地数据库获取可用服务器si上第c种资源的资源空闲量vc(si);其中,所述本地数据库中存储了可用服务器si上第c种资源的资源空闲量vc(si);

判断可用服务器si上第c种资源的资源空闲量vc(si)在本地数据库中的生存时间是否超过预设的时长阈值;

当超过所述时长阈值时,向可用服务器si发送指令以重新获取可用服务器si上第c种资源的资源空闲量vc(si)并更新到所述本地数据库中。

在所述方法的一个实施方式中,所述根据每个所述可用服务器上对具有所述任务类型的任务的资源供需比以及当前执行的具有所述任务类型的任务的数量,在所有所述可用服务器中选取待分配服务器,包括:

计算每个所述可用服务器上当前执行的具有所述任务类型的任务的数量与对应的所述资源供需比的比值,作为每个所述可用服务器的资源压力系数,并在所述可用服务器选取具有最小的所述资源压力系数的待分配服务器。

本发明另一方面还提供了一种任务分配系统,所述系统包括:

获取任务类型模块,用于当接收到待分配任务的任务请求时,获取所述待分配任务的任务类型;

选择可用服务器模块,用于在获取所述任务类型后,从服务器列表中选择可用服务器;

获取资源供需比模块,用于获取每个所述可用服务器上对具有所述任务类型的任务的资源供需比;

获取连接数量模块,用于获取每个所述可用服务器上当前执行的具有所述任务类型的任务的数量;

选取待分配服务器模块,用于根据每个所述可用服务器上对具有所述任务类型的任务的资源供需比以及当前执行的具有所述任务类型的任务的数量,在所有所述可用服务器中选取待分配服务器;

分配任务模块,用于将所述待分配任务分配到所述待分配服务器去执行。

作为更优选地,所述获取资源供需比模块包括:

资源空闲率获取单元,用于获取可用服务器si上第c种资源的资源空闲率hc(si);

资源供需比分量计算单元,用于计算可用服务器si上第c种资源的资源空闲率hc(si)与具有所述任务类型的任务对第c种资源的需求值rc的比值,作为具有所述任务类型的任务对第c种资源的资源供需比分量hc(si)/rc;其中,具有所述任务类型的任务对第c种资源的需求值rc为预设值;

资源供需比求和单元,用于将具有所述任务类型的任务对各种资源的资源供需比分量进行求和,以得到可用服务器si上对具有所述任务类型的任务的资源供需比;

其中,所述可用服务器si为所有可用服务器中的任意一个服务器。

在所述系统的一个实施方式中,所述资源空闲率获取单元包括:

资源空闲量获取单元,用于获取可用服务器si上第c种资源的资源空闲量vc(si);

资源总量获取单元,用于获取可用服务器si上第c种资源的资源总量uc(si);

资源空闲率计算单元,用于计算可用服务器si上第c种资源的资源空闲量vc(si)与可用服务器si上第c种资源的资源总量uc(si)的比值,作为可用服务器si上第c种资源的资源空闲率hc(si)。

在所述系统的一个实施方式中,所述资源空闲量获取单元包括:

第一获取单元,用于从本地数据库获取可用服务器si上第c种资源的资源空闲量vc(si);其中,所述本地数据库中存储了可用服务器si上第c种资源的的资源空闲量vc(si);

生存时间判断单元,用于判断可用服务器si上第c种资源的资源空闲量vc(si)在本地数据库中的生存时间是否超过预设的时长阈值;

资源空闲量更新单元,用于当超过所述时长阈值时,向可用服务器si发送指令以重新获取可用服务器si上第c种资源的资源空闲量vc(si)并更新到所述本地数据库中。

在所述系统的一个实施方式中,所述选取待分配服务器模块包括:

选取单元,用于计算每个所述可用服务器上当前执行的具有所述任务类型的任务的数量与对应的所述资源供需比的比值,作为每个所述可用服务器的资源压力系数,并在所述可用服务器选取具有最小的所述资源压力系数的待分配服务器。

相对于现有技术,本发明具有如下突出的有益效果:本发明提供了一种任务分配方法与系统,其中任务分配方法包括:当接收到待分配任务的任务请求时,获取所述待分配任务的任务类型;在获取所述任务类型后,从服务器列表中选择可用服务器;获取每个所述可用服务器上对具有所述任务类型的任务的资源供需比;获取每个所述可用服务器上当前执行的具有所述任务类型的任务的数量;根据每个所述可用服务器上对具有所述任务类型的任务的资源供需比以及当前执行的具有所述任务类型的任务的数量,在所有所述可用服务器中选取待分配服务器;将所述待分配任务分配到所述待分配服务器去执行。本发明提供的任务分配方法与系统,通过在分配任务时充分考虑服务器的资源供需比、当前执行的任务数量和任务类型来选取待分配服务器,实现服务器资源的充分利用,提升了整体的服务器吞吐量,增强了待分配服务器的选取的准确性,进而提高了网络系统的请求响应速度,防止了在大访问量、复杂请求的情况下部分请求任务长时间得不到响应的情况。

附图说明

图1是本发明提供的任务分配方法的第一实施例的流程示意图;

图2是本发明提供的任务分配系统的第一实施例的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,是本发明提供的任务分配方法的第一实施例的流程示意图,所述方法包括:

s101,当接收到待分配任务的任务请求时,获取所述待分配任务的任务类型;

s102,在获取所述任务类型后,从服务器列表中选择可用服务器;

s103,获取每个所述可用服务器上对具有所述任务类型的任务的资源供需比;

s104,获取每个所述可用服务器上当前执行的具有所述任务类型的任务的数量;

s105,根据每个所述可用服务器上对具有所述任务类型的任务的资源供需比以及当前执行的具有所述任务类型的任务的数量,在所有所述可用服务器中选取待分配服务器;

s106,将所述待分配任务分配到所述待分配服务器去执行。

在一种可选的实施方式中,所述从服务器列表中选择可用服务器,包括:

向所述服务器列表中的服务器发送在线确认包;

判断是否收到所述服务器在收到所述在线确认包后发送的反馈消息;

当收到所述反馈消息时,判定所述服务器为可用服务器;

当没有收到所述反馈消息时,判定所述服务器为不可用服务器。

即通过判断是否收到服务器在收到在线确认包后发送的反馈消息,快速可靠地将不可用服务器排除在选取范围内,提高了可用服务器的选取的效率。

在一种可选的实施方式中,所述方法还包括:

从服务器列表中选择可用服务器时,若所述服务器列表没有可用的服务器,则返回错误信息。

即通过返回错误信息及时反馈服务器状态,防止了在所述服务器列表没有可用的服务器时仍继续选取可用服务器所造成的处理资源的浪费。

需要说明的是,所述任务类型包括但不限于cpu密集型、io密集型、内存密集型、gpu密集型、数据库写类型、数据库读类型、会话相关型和会话无关型。所述资源供需比包括但不限于cpu资源供需比、内存资源供需比和硬盘读写资源供需比。

即通过在分配任务时充分考虑服务器的资源供需比、当前执行的任务数量和任务类型来选取待分配服务器,实现服务器资源的充分利用,提升了整体的服务器吞吐量,增强了待分配服务器的选取的准确性,进而提高了网络系统的请求响应速度,防止了在大访问量、复杂请求的情况下部分请求任务长时间得不到响应的情况。

作为更优选地,所述获取每个所述可用服务器上对具有所述任务类型的任务的资源供需比,包括:

获取可用服务器si上第c种资源的资源空闲率hc(si);

计算可用服务器si上第c种资源的资源空闲率hc(si)与具有所述任务类型的任务对第c种资源的需求值rc的比值,作为具有所述任务类型的任务对第c种资源的资源供需比分量hc(si)/rc;其中,具有所述任务类型的任务对第c种资源的需求值rc为预设值;

将具有所述任务类型的任务对各种资源的资源供需比分量进行求和,以得到可用服务器si上对具有所述任务类型的任务的资源供需比;

其中,所述可用服务器si为所有可用服务器中的任意一个服务器。

例如,将所述任务类型分为m类,若在所述服务器列表中选取的所述可用服务器的总数为n,则用si∈{s1,s2,…,sn}表示所述可用服务器的集合;若获取的所述待分配任务的任务类型为m种任务类型中的第j类,则将第j类任务对各种资源的资源供需比分量hc(si)/rc进行求和,得到的可用服务器si上对第j类任务的资源供需比为

对于所述资源供需比分量hc(si)/rc,若hc(si)越大,rc越小,则说明可用服务器si上第c种资源的供给满足第j类任务对第c种资源的需求。将第j类任务对各种资源的资源供需比分量hc(si)/rc进行求和,即考虑了待分配任务对每种资源的需求和服务器对每种资源的供给情况,从而寻找出对待分配任务能提供资源最充足的服务器,降低了服务器资源被闲置的概率,进一步提升了整体的服务器吞吐量。

本发明还提供了一种任务分配方法的第二实施例,所述方法包括上述任务分配方法的第一实施例中的步骤s101-s106,还进一步限定了所述对于可用服务器si,获取可用服务器si上第c种资源的资源空闲率hc(si),包括:

获取可用服务器si上第c种资源的资源空闲量vc(si);

获取可用服务器si上第c种资源的资源总量uc(si);

计算可用服务器si上第c种资源的资源空闲量vc(si)与可用服务器si上第c种资源的资源总量uc(si)的比值,作为可用服务器si上第c种资源的资源空闲率hc(si)。

在本实施例中,在可用服务器si上第c种资源的资源总量uc(si)由可用服务器si的硬件决定,因此,在任务分配过程中,资源总量uc(si)通常不会发生变化,故可用服务器si上第c种资源的资源空闲量vc(si)越大,则资源空闲率hc(si)越大,即通过影响资源空闲率的最主要因素来计算资源空闲率,实现了计算过程的简单化,从而提高了系统的处理效率。

本发明还提供了一种任务分配方法的第三实施例,所述方法包括上述任务分配方法的第一实施例中的步骤s101-s106,还进一步限定了所述获取可用服务器si上第c种资源的资源空闲量vc(si),包括:

从本地数据库获取可用服务器si上第c种资源的资源空闲量vc(si);其中,所述本地数据库中存储了可用服务器si上第c种资源的资源空闲量vc(si);

判断可用服务器si上第c种资源的资源空闲量vc(si)在本地数据库中的生存时间是否超过预设的时长阈值;

当超过所述时长阈值时,向可用服务器si发送指令以重新获取可用服务器si上第c种资源的资源空闲量vc(si)并更新到所述本地数据库中。

即通过本地数据库对资源空闲量vc(si)的存储,便于系统在资源空闲量vc(si)的生存时间未超过所述时长阈值时根据需求从本地数据库获取资源空闲量vc(si),而无需直接向所述可用服务器发送指令来获取资源空闲量vc(si),从而提高了系统的处理速度,且减少了所述可用服务器对所述指令的处理次数,进而缓解了所述可用服务器的压力;通过判断资源空闲量vc(si)在本地数据库中的生存时间是否超过预设的时长阈值来决定是否在本地数据库中更新资源空闲量vc(si),从而获得实时的资源空闲量vc(si),动态考虑了服务器状态,进一步提高了待分配服务器的选取的准确性。

本发明还提供了一种任务分配方法的第四实施例,所述方法包括上述任务分配方法的第一实施例中的步骤s101-s106,还进一步限定了所述根据每个所述可用服务器上对具有所述任务类型的任务的资源供需比以及当前执行的具有所述任务类型的任务的数量,在所有所述可用服务器中选取待分配服务器,包括:

计算每个所述可用服务器上当前执行的具有所述任务类型的任务的数量与对应的所述资源供需比的比值,作为每个所述可用服务器的资源压力系数,并在所述可用服务器选取具有最小的所述资源压力系数的待分配服务器。

在本实施例中,对于所述资源压力系数,所述可用服务器上当前执行的具有所述任务类型的任务的数量越少,每个所述可用服务器上所述资源供需比越大,则所述资源压力系数越小。所述可用服务器上当前执行的具有所述任务类型的任务的数量越少,说明对应的可用服务器的空闲程度越高;每个所述可用服务器上所述资源供需比越大,说明对应的可用服务器提供的资源最充足;通过选取具有最小的所述比值的待分配服务器,使得所述待分配服务器同时符合服务器的空闲程度高以及提供的资源最充足的特点,从而提高了待分配服务器的选取的准确性。

本发明还提供了一种任务分配系统的第一实施例。参见图2,是本发明提供的任务分配系统的第一实施例的结构示意图,所述系统包括:

获取任务类型模块201,用于当接收到待分配任务的任务请求时,获取所述待分配任务的任务类型;

选择可用服务器模块202,用于在获取所述任务类型后,从服务器列表中选择可用服务器;

获取资源供需比模块203,用于获取每个所述可用服务器上对具有所述任务类型的任务的资源供需比;

获取连接数量模块204,用于获取每个所述可用服务器上当前执行的具有所述任务类型的任务的数量;

选取待分配服务器模块205,用于选取待分配服务器模块,用于根据每个所述可用服务器上对具有所述任务类型的任务的资源供需比以及当前执行的具有所述任务类型的任务的数量,在所有所述可用服务器中选取待分配服务器;

分配任务模块206,用于将所述待分配任务分配到所述待分配服务器去执行。

在一种可选的实施方式中,所述选择可用服务器模块包括:

询问单元,用于向所述服务器列表中的服务器发送在线确认包;

反馈判断单元,用于判断是否收到所述服务器在收到所述在线确认包后发送的反馈消息;

第一判定单元,用于当收到所述反馈消息时,判定所述服务器为可用服务器;

第二判定单元,用于当没有收到所述反馈消息时,判定所述服务器为不可用服务器。

即通过判断是否收到服务器在收到在线确认包后发送的反馈消息,快速可靠地将不可用服务器排除在选取范围内,提高了可用服务器的选取的效率。

在一种可选的实施方式中,所述系统还包括:

错误信息模块,用于从服务器列表中选择可用服务器时,若所述服务器列表没有可用的服务器,则返回错误信息。

即通过返回错误信息及时反馈服务器状态,防止了在所述服务器列表没有可用的服务器时仍继续选取可用服务器所造成的处理资源的浪费。

需要说明的是,所述任务类型包括但不限于cpu密集型、io密集型、内存密集型、gpu密集型、数据库写类型、数据库读类型、会话相关型和会话无关型。所述资源供需比包括但不限于cpu资源供需比、内存资源供需比和硬盘读写资源供需比。

即通过在分配任务时充分考虑服务器的资源供需比、当前执行的任务数量和任务类型来选取待分配服务器,实现服务器资源的充分利用,提升了整体的服务器吞吐量,增强了待分配服务器的选取的准确性,进而提高了网络系统的请求响应速度,防止了在大访问量、复杂请求的情况下部分请求任务长时间得不到响应的情况。

作为更优选地,所述获取资源供需比模块包括:

资源空闲率获取单元,用于获取可用服务器si上第c种资源的资源空闲率hc(si);

资源供需比分量计算单元,用于计算可用服务器si上第c种资源的资源空闲率hc(si)与具有所述任务类型的任务对第c种资源的需求值rc的比值,作为具有所述任务类型的任务对第c种资源的资源供需比分量hc(si)/rc;其中,具有所述任务类型的任务对第c种资源的需求值rc为预设值;

资源供需比求和单元,用于将具有所述任务类型的任务对各种资源的资源供需比分量进行求和,以得到可用服务器si上对具有所述任务类型的任务的资源供需比;

其中,所述可用服务器si为所有可用服务器中的任意一个服务器。

例如,将所述任务类型分为m类,若在所述服务器列表中选取的所述可用服务器的总数为n,则用si∈{s1,s2,…,sn}表示所述可用服务器的集合;若获取的所述待分配任务的任务类型为m种任务类型中的第j类,则将第j类任务对各种资源的资源供需比分量hc(si)/rc进行求和,得到的可用服务器si上对第j类任务的资源供需比为

对于所述资源供需比分量hc(si)/rc,若hc(si)越大,rc越小,则说明可用服务器si上第c种资源的供给满足第j类任务对第c种资源的需求。将第j类任务对各种资源的资源供需比分量hc(si)/rc进行求和,即考虑了待分配任务对每种资源的需求和服务器对每种资源的供给情况,从而寻找出对待分配任务能提供资源最充足的服务器,降低了服务器资源被闲置的概率,进一步提升了整体的服务器吞吐量。

本发明还提供了一种任务分配系统的第二实施例,其包括上述任务分配系统的第一实施例的获取任务类型模块201、选择可用服务器模块202、获取资源供需比模块203、获取连接数量模块204、选取待分配服务器模块205、分配任务模块206,还进一步限定了所述资源空闲率获取单元包括:

资源空闲量获取单元,用于获取可用服务器si上第c种资源的资源空闲量vc(si);

资源总量获取单元,用于获取可用服务器si上第c种资源的资源总量uc(si);

资源空闲率计算单元,用于计算可用服务器si上第c种资源的资源空闲量vc(si)与可用服务器si上第c种资源的资源总量uc(si)的比值,作为可用服务器si上第c种资源的资源空闲率hc(si)。

在本实施例中,服务器响应时间阈值为预设值;具有所述任务类型的任务在不同可用服务器上的请求响应时间可能小于服务器响应时间阈值、可能大于服务器响应时间阈值,也可能等于服务器响应时间阈值。

在本实施例中,在可用服务器si上第c种资源的资源总量uc(si)由可用服务器si的硬件决定,因此,在任务分配过程中,资源总量uc(si)通常不会发生变化,故可用服务器si上第c种资源的资源空闲量vc(si)越大,则资源空闲率hc(si)越大,即通过影响资源空闲率的最主要因素来计算资源空闲率,实现了计算过程的简单化,从而提高了系统的处理效率。

本发明还提供了一种任务分配系统的第三实施例,其包括上述任务分配系统的第一实施例的获取任务类型模块201、选择可用服务器模块202、获取资源供需比模块203、获取连接数量模块204、选取待分配服务器模块205、分配任务模块206,还进一步限定了所述资源空闲量获取单元包括:

第一获取单元,用于从本地数据库获取可用服务器si上第c种资源的资源空闲量vc(si);其中,所述本地数据库中存储了可用服务器si上第c种资源的的资源空闲量vc(si);

生存时间判断单元,用于对于判断可用服务器si上第c种资源的资源空闲量vc(si)在本地数据库中的生存时间是否超过预设的时长阈值;

资源空闲量更新单元,用于当超过所述时长阈值时,向可用服务器si发送指令以重新获取可用服务器si上第c种资源的资源空闲量vc(si)并更新到所述本地数据库中。

即通过本地数据库对资源空闲量vc(si)的存储,便于系统在资源空闲量vc(si)的生存时间未超过所述时长阈值时根据需求从本地数据库获取资源空闲量vc(si),而无需直接向所述可用服务器发送指令来获取资源空闲量vc(si),从而提高了系统的处理速度,且减少了所述可用服务器对所述指令的处理次数,进而缓解了所述可用服务器的压力;通过判断资源空闲量vc(si)在本地数据库中的生存时间是否超过预设的时长阈值来决定是否在本地数据库中更新资源空闲量vc(si),从而获得实时的资源空闲量vc(si),动态考虑了服务器状态,进一步提高了待分配服务器的选取的准确性。

本发明还提供了一种任务分配系统的第四实施例,其包括上述任务分配系统的第一实施例的获取任务类型模块201、选择可用服务器模块202、获取资源供需比模块203、获取连接数量模块204、选取待分配服务器模块205、分配任务模块206,还进一步限定了所述选取待分配服务器模块包括:

选取单元,用于计算每个所述可用服务器上当前执行的具有所述任务类型的任务的数量与对应的所述资源供需比的比值,作为每个所述可用服务器的资源压力系数,并在所述可用服务器选取具有最小的所述资源压力系数的待分配服务器。

在本实施例中,对于所述资源压力系数,所述可用服务器上当前执行的具有所述任务类型的任务的数量越少,每个所述可用服务器上所述资源供需比越大,则所述资源压力系数越小。所述可用服务器上当前执行的具有所述任务类型的任务的数量越少,说明对应的可用服务器的空闲程度越高;每个所述可用服务器上所述资源供需比越大,说明对应的可用服务器提供的资源最充足;通过选取具有最小的所述比值的待分配服务器,使得所述待分配服务器同时符合服务器的空闲程度高以及提供的资源最充足的特点,从而提高了待分配服务器的选取的准确性。

本发明提供的任务分配方法与系统,通过在分配任务时充分考虑服务器的资源供需比、当前执行的任务数量和任务类型来选取待分配服务器,实现服务器资源的充分利用,提升了整体的服务器吞吐量,增强了待分配服务器的选取的准确性,进而提高了网络系统的请求响应速度,防止了在大访问量、复杂请求的情况下部分请求任务长时间得不到响应的情况。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1