一种分布式系统的任务分配方法及系统与流程

文档序号:13735851阅读:158来源:国知局
一种分布式系统的任务分配方法及系统与流程
本发明涉及数据处理领域,尤其涉及一种分布式系统的任务分配方法及系统。
背景技术
:分布式系统通常涉及多个服务器,每个服务器上包括多个磁盘。分布式系统需要处理的数据量通常是非常大的,如果将数据分配给某个或某几个磁盘进行处理,则会导致有些磁盘一直处于繁忙状态,而有些磁盘则一直处于空闲状态,从而不能合理地利用服务器上的处理资源。因此,当通过分布式系统对数据进行读写、处理等操作时,需要一种能够合理利用各个服务器上的处理资源,提高服务器处理效率的方法和系统。技术实现要素:为了解决现有技术中向服务器上的处理资源分配任务的问题,提出了一种用于分布式系统的任务分配方法和系统。根据本发明的一个方面,提供了一种分布式系统的任务分配方法,所述方法包括:步骤1,获取多个服务器包括的每个处理资源组合的多个处理资源的当前资源状况;步骤2,利用获取的每个处理资源组合的多个处理资源的当前资源状况以及每个处理资源组合的多个处理资源的权重,计算每个所述处理资源组合的总分;步骤3,基于计算的各处理资源组合的总分,选择处理资源组合,并向所选择的处理资源组合分配处理任务。其中,所述步骤2包括:基于每个处理资源组合的多个处理资源的当前资源状况确定各处理资源的评分,将每个处理资源组合中处理资源的评分乘以该处理资源的权重后得到该处理资源的加权评分,并将每个处理资源组合中各处理资源的加权评分相加,分别得到每个处理资源组合的总分。其中,所述步骤3包括:将各处理资源组合的总分按从高到低排序后进行分段,得到n个总分集合,第i个总分集合中的总分均大于第i+1个总分集合至第n个总分集合中的总分,从所述n个总分集合中选择前m个总分集合,并从所述前m个总分集合的每个总分集合中分别选择设定数量的总分,向与所选择的总分对应的处理资源组合分配处理任务,其中n、m和i均为大于0的正整数,且m≤n,i≤n。其中,所述步骤3包括:将各处理资源组合的总分按从低到高排序后进行分段,得到n个总分集合,第i个总分集合中的总分均小于第i+1个总分集合至第n个总分集合中的总分,从所述n个总分集合中选择前m个总分集合,并从所述前m个总分集合的每个总分集合中分别选择设定数量的总分,向与所选择的总分对应的处理资源组合分配处理任务,其中n、m和i均为大于0的正整数,且m≤n,i≤n。其中,所述步骤2还包括根据以下方式确定各处理资源的评分:方式一,当一处理资源的当前资源状况表示该处理资源的可用资源占比大于等于设定阈值时,将该处理资源的评分确定为该可用资源占比;方式二,当一处理资源的当前资源状况表示该处理资源的可用资源占比小于所述设定阈值时,将该处理资源的评分确定为零分。其中,所述步骤2还包括根据以下方式确定各处理资源的评分:方式一,当一处理资源的当前资源状况表示该处理资源的已用资源占比小于等于设定阈值时,将该处理资源的评分确定为该已用资源占比;方式二,当一处理资源的当前资源状况表示该处理资源的已用资源占比大于所述设定阈值时,将该处理资源的评分确定为零分。其中,在所述步骤2之前还包括:根据所述处理资源组合的属性,为所述处理资源组合的多个处理资源设置相应的权重。其中,从所述前m个总分集合的每个总分集合中分别选择设定数量的总分包括:基于哈希运算,从每个总分集合中分别选择设定数量的总分。根据本发明的另一方面,还提供了一种分布式系统的任务分配系统,所述系统包括:资源状况获取模块,获取多个服务器包括的每个处理资源组合的多个处理资源的当前资源状况;总分计算模块,用于利用获取的每个处理资源组合的多个处理资源的当前资源状况以及每个处理资源组合的多个处理资源的权重,计算每个所述处理资源组合的总分;任务分配模块,用于基于计算的各处理资源组合的总分,选择处理资源组合,并向所选择的处理资源组合分配处理任务。其中,所述总分计算模块还用于:基于每个处理资源组合的多个处理资源的当前资源状况确定各处理资源的评分,将每个处理资源组合中处理资源的评分乘以该处理资源的权重后得到该处理资源的加权评分,并将每个处理资源组合中各处理资源的加权评分相加,分别得到每个处理资源组合的总分。其中,所述任务分配模块还用于:将各处理资源组合的总分按从高到低排序后进行分段,得到n个总分集合,第i个总分集合中的总分均大于第i+1个总分集合至第n个总分集合中的总分,从所述n个总分集合中选择前m个总分集合,并从所述前m个总分集合的每个总分集合中分别选择设定数量的总分,向与所选择的总分对应的处理资源组合分配处理任务,其中n、m和i均为大于0的正整数,且m≤n,i≤n。其中,所述任务分配模块还用于:将各处理资源组合的总分按从低到高排序后进行分段,得到n个总分集合,第i个总分集合中的总分均小于第i+1个总分集合至第n个总分集合中的总分,从所述n个总分集合中选择前m个总分集合,并从所述前m个总分集合的每个总分集合中分别选择设定数量的总分,向与所选择的总分对应的处理资源组合分配处理任务,其中n、m和i均为大于0的正整数,且m≤n,i≤n。其中,所述总分计算模块还用于根据以下方式确定各处理资源的评分:方式一,当一处理资源的当前资源状况表示该处理资源的可用资源占比大于等于设定阈值时,将该处理资源的评分确定为该可用资源占比;方式二,当一处理资源的当前资源状况表示该处理资源的可用资源占比小于所述设定阈值时,将该处理资源的评分确定为零分。其中,所述总分计算模块还用于根据以下方式确定各处理资源的评分:方式一,当一处理资源的当前资源状况表示该处理资源的已用资源占比小于等于设定阈值时,将该处理资源的评分确定为该已用资源占比;方式二,当一处理资源的当前资源状况表示该处理资源的已用资源占比大于所述设定阈值时,将该处理资源的评分确定为零分。其中,所述系统还包括:权重设置模块,用于根据所述处理资源组合的属性,为所述处理资源组合的多个处理资源设置相应的权重。其中,所述任务分配模块还用于:基于哈希运算,从每个总分集合中分别选择设定数量的总分。本发明中的分布式系统的任务分配方法和系统,通过利用处理资源组合中各处理资源的评分和权重计算处理资源的总分,并将总分排序后分段,选择处理资源组合分配任务,可以有效地利用处理资源,避免部分处理资源过于繁忙,部分处理资源却过于空闲,从而提高系统的处理效率。因此,采用本发明的方法和系统,可以实现资源的充分利用,节约成本,极大提高服务可用性。此外,在进行任务分配时实现自动分配,提高系统的健壮性。附图说明构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是根据本发明的分布式系统的任务分配方法流程图;图2是根据本发明的分布式系统的任务分配系统模块图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。本发明提供了一种分布式系统的任务分配方法,如图1所述,该方法包括:步骤101,获取多个服务器包括的每个处理资源组合的多个处理资源的当前资源状况;步骤102,利用获取的每个处理资源组合的多个处理资源的当前资源状况以及每个处理资源组合的多个处理资源的权重,计算每个处理资源组合的总分;步骤103,基于计算的各处理资源组合的总分,选择处理资源组合,并向所选择的处理资源组合分配处理任务。上述步骤102包括:基于每个处理资源组合的多个处理资源的当前资源状况确定各处理资源的评分,将每个处理资源组合中处理资源的评分乘以该处理资源的权重后得到该处理资源的加权评分,并将每个处理资源组合中各处理资源的加权评分相加,分别得到每个处理资源组合的总分。即,处理资源的总分是由各处理资源的评分和相应的权重进行计算得到的。上述步骤103包括:将各处理资源组合的总分按高低排序后进行分段,得到n个总分集合,第i个总分集合中的总分均大于第i+1个总分集合至第n个总分集合中的总分,从所述n个总分集合中选择前m个总分集合,并从所述前m个总分集合的每个总分集合中分别选择设定数量的总分,向与所选择的总分对应的处理资源组合分配处理任务,其中n、m和i均为大于0的正整数,且m≤n,i≤n。即,将各处理资源组合的总分按高低排序后分段,得到多个总分集合,例如,第1总分集合、第2总分集合、…、第n总分集合。排在前面的总分集合中的总分均大于排在后面的总分集合中的总分。另外,在选择处理资源组合时,并不是全部从排名最靠前的总分集合中选择,而是首先选择几个排名靠前的总分集合,然后分别从所选的总分集合中选择设定数量的总分。这是因为,在步骤102中计算的总分是根据各处理资源上报的当前资源状况计算的,而各处理资源的资源使用状况可能会实时改变,即计算出的总分可能会实时调整,在这种情况下,如果全部从排名最靠前的总分集合中进行选择,则这个分配方法不一定是最优的。而采用本发明这种排序分段,并从多个集合中分别选择多个总分的方法,可以有效保证处理资源的实时优化利用。在这种情况下,步骤102还包括根据以下方式确定各处理资源的评分:方式一,当一处理资源的当前资源状况表示该处理资源的可用资源占比大于等于设定阈值时,将该处理资源的评分确定为该可用资源占比;方式二,当一处理资源的当前资源状况表示该处理资源的可用资源占比小于所述设定阈值时,将该处理资源的评分确定为零分。在上述确定处理资源的评分的方式中,当处理资源的可用资源占比比较小时,则认为该处理资源不可用,即将该处理资源的评分确定为零分。另外,步骤101中获取的处理资源的当前资源状况可以是该处理资源的资源已使用状况或资源可用状况,即已用资源占比或可用资源占比。当获取的是已用资源占比时,计算1-已用资源占比即可得到可用资源占比,其中的占比可以是百分比。另外,上述步骤103还可以包括:将各处理资源组合的总分按从低到高排序后进行分段,得到n个总分集合,第i个总分集合中的总分均小于第i+1个总分集合至第n个总分集合中的总分,从所述n个总分集合中选择前m个总分集合,并从所述前m个总分集合的每个总分集合中分别选择设定数量的总分,向与所选择的总分对应的处理资源组合分配处理任务,其中n、m和i均为大于0的正整数,且m≤n,i≤n。该排序方法与前面的从高到低的方法相反,是因为所使用的处理资源的评分是已用资源占比,即已用资源占比越小越好。在这种情况下,步骤102还包括根据以下方式确定各处理资源的评分:方式一,当一处理资源的当前资源状况表示该处理资源的已用资源占比小于等于设定阈值时,将该处理资源的评分确定为该已用资源占比;方式二,当一处理资源的当前资源状况表示该处理资源的已用资源占比大于所述设定阈值时,将该处理资源的评分确定为零分。在上述确定处理资源的评分的方式中,当处理资源的已用资源占比比较大时,则认为该处理资源不可用,即将该处理资源的评分确定为零分。另外,步骤101中获取的处理资源的当前资源状况可以是该处理资源的资源已使用状况或资源可用状况,即已用资源占比或可用资源占比。当获取的是可用资源占比时,计算1-可用资源占比即可得到已用资源占比,其中的占比可以是百分比。需要说明的是,从前m个总分集合的每个总分集合中分别选择设定数量的总分包括:基于哈希运算,从每个总分集合中分别选择设定数量的总分。即,先按照总分从高到低的顺序排序后分段,或者按照总分从低到高的顺序排序后分段。分段后,从每个总分集合中选择设定数量的总分时可以采用随机哈希运算进行选择。在一个总分集合中,尽管各个总分值不完全相同,但是非常接近,因此,从该总分集合中可随机选择设定数量的总分。除了哈希运算,也可以采用其他随机选择算法。在上述步骤102之前还包括:根据所述处理资源组合的属性,为所述处理资源组合的多个处理资源设置相应的权重。即,在计算每个处理资源组合的总分之前,还需要为各处理资源设置权重。处理资源组合的属性可以是,例如,计算性、数据写入、数据读取。其中计算性资源组合中,cpu、内存的优先级高,即权重大;数据写入资源组合中,磁盘i/o、网络i/o的优先级高,即权重大;数据读取资源组合中,网络i/o、磁盘i/o、网络i/o的优先级高,即权重大。下表列出了一个示例性实施例中各属性对应的处理资源的权重。表1cpu权重内存权重网络i/o权重磁盘i/o权重磁盘容量权重计算性50401000数据写入1010203030数据读取101040400这种对各处理资源的评分进行加权求和的方法,基于处理资源组合的属性,为各处理资源设置合适的权重,计算该处理资源组合的合理的总分,该总分代表该处理资源组合的处理能力,从而依据各处理资源组合的总分选择处理能力较强的处理资源组合,来分配任务。这样,能够有效地利用分布式系统的资源,提高分布式系统的处理效率。上述处理资源至少包括:cpu、内存、网络输入/输出、磁盘输入/输出、磁盘容量。另外,各处理资源会周期性地上报自己的当前资源状况,例如每分钟上报一次,以便系统可以根据实时的数据进行计算以及任务分配。下面给出根据本发明的分布式系统的任务分配方法的具体实施例。在该实施例中,分布式系统包括3个服务器,每个服务器包括4个磁盘,即4个处理资源组合,处理资源包括cpu、内存、网络输入/输出、磁盘输入/输出、磁盘容量。其中,服务器一为用于数据读取的服务器,服务器二为用于数据写入的服务器,服务器三为用于数据计算的服务器。具体的任务分配方法如下:第一步,获取3个服务器中每个磁盘的cpu、内存、网络输入/输出、磁盘输入/输出、磁盘容量的当前资源状况。第二步,根据获取的当前资源状况确定每个磁盘的cpu、内存、、网络输入/输出、磁盘输入/输出磁盘容量的可用资源占比,并进一步确定每个磁盘的cpu、内存、网络输入/输出、磁盘输入/输出、磁盘容量的评分。例如,确定的服务器一的4个磁盘的cpu、内存、网络输入/输出、磁盘输入/输出、磁盘容量的评分如表2所示,其中的评分为可用资源占比乘以100:表2cpu评分内存评分网络i/o评分磁盘i/o评分磁盘容量评分磁盘一80402040100磁盘二50607010070磁盘三5060708090磁盘四506070400第三步,基于每个磁盘的评分及其相应的权重,计算每个磁盘的总分。其中,服务器一的属性为数据读取,对于服务器一中的磁盘,设定cpu、内存、网络输入/输出、磁盘输入/输出、磁盘容量的权重分别为10%、10%、20%、30%、30%。将各处理资源的评分与权重相乘并求和,得到磁盘一、磁盘二、磁盘三、磁盘四的总分分别为:36、79、71、55。以此类推,分别计算服务器二和服务器三中各磁盘的总分。其中,服务器二的属性为数据写入,其中各磁盘的cpu、内存、网络输入/输出、磁盘输入/输出、磁盘容量的权重分别为10%、10%、20%、30%、30%;服务器三的属性为数据计算,其中各磁盘的cpu、内存、网络输入/输出、磁盘输入/输出、磁盘容量的权重分别为10%、10%、40%、40%、0%。例如,计算得到的服务器二中四个磁盘的总分分别为:58、76、76、37,计算得到的服务器三中四个磁盘的总分分别为:58、56、56、56。第四步,利用哈希运算将计算得到12个磁盘的总分排序并分段。按总分从高到低排序后得到79、76、76、71、58、58、56、56、56、55、37、36。其中,将总分在71-80内的分值分到第1总分集合中,将总分在51-60内的分值分到第2总分集合中,将总分在31-40内的分值分到第3总分集合中。分段后,第1总分集合包括4个总分,第2总分集合包括6个总分,第3总分集合包括2个总分。第五步,从第1总分集合中选择2个总分,从第2总分集合中选择1个总分,从第3总分集合中选择1个总分。该步骤中从各总分集合中选择总分的个数是根据大量实验得出的经验值进行设定的。并且,在各总分集合中的选择是随机的。第六步,向与所选择的总分对应的磁盘分配任务。该实施例中,选择cpu、内存、网络输入/输出、磁盘输入/输出、磁盘容量的可用资源占比作为其评分,并且在对磁盘总分进行排序时,按照从高到低的顺序进行排序并分段。在其他实施例中,可以选择已用资源占比作为评分,按照从低到高的顺序对磁盘总分进行排序并分段。本发明还提供了一种分布式系统的任务分配系统,所述系统包括:资源状况获取模块201,获取多个服务器包括的每个处理资源组合的多个处理资源的当前资源状况;总分计算模块202,用于利用获取的每个处理资源组合的多个处理资源的当前资源状况以及每个处理资源组合的多个处理资源的权重,计算每个所述处理资源组合的总分;任务分配模块203,用于基于计算的各处理资源组合的总分,选择处理资源组合,并向所选择的处理资源组合分配处理任务。其中,所述总分计算模块202还用于:基于每个处理资源组合的多个处理资源的当前资源状况确定各处理资源的评分,将每个处理资源组合中处理资源的评分乘以该处理资源的权重后得到该处理资源的加权评分,并将每个处理资源组合中各处理资源的加权评分相加,分别得到每个处理资源组合的总分。其中,所述任务分配模块203还用于:将各处理资源组合的总分按从高到低排序后进行分段,得到n个总分集合,第i个总分集合中的总分均大于第i+1个总分集合至第n个总分集合中的总分,从所述n个总分集合中选择前m个总分集合,并从所述前m个总分集合的每个总分集合中分别选择设定数量的总分,向与所选择的总分对应的处理资源组合分配处理任务,其中n、m和i均为大于0的正整数,且m≤n,i≤n。其中,所述任务分配模块203还用于:将各处理资源组合的总分按从低到高排序后进行分段,得到n个总分集合,第i个总分集合中的总分均小于第i+1个总分集合至第n个总分集合中的总分,从所述n个总分集合中选择前m个总分集合,并从所述前m个总分集合的每个总分集合中分别选择设定数量的总分,向与所选择的总分对应的处理资源组合分配处理任务,其中n、m和i均为大于0的正整数,且m≤n,i≤n。其中,所述总分计算模块202还用于根据以下方式确定各处理资源的评分:方式一,当一处理资源的当前资源状况表示该处理资源的可用资源占比大于等于设定阈值时,将该处理资源的评分确定为该可用资源占比;方式二,当一处理资源的当前资源状况表示该处理资源的可用资源占比小于所述设定阈值时,将该处理资源的评分确定为零分。其中,所述总分计算模块202还用于根据以下方式确定各处理资源的评分:方式一,当一处理资源的当前资源状况表示该处理资源的已用资源占比小于等于设定阈值时,将该处理资源的评分确定为该已用资源占比;方式二,当一处理资源的当前资源状况表示该处理资源的已用资源占比大于所述设定阈值时,将该处理资源的评分确定为零分。其中,所述系统还包括:权重设置模块204,用于根据所述处理资源组合的属性,为所述处理资源组合的多个处理资源设置相应的权重。其中,所述处理资源至少包括:cpu、内存、磁盘输入/输出、网络输入/输出。其中,所述任务分配模块203还用于:基于哈希运算,从每个总分集合中分别选择设定数量的总分。本发明中的分布式系统的任务分配方法和系统,通过利用处理资源组合中各处理资源的评分和权重计算处理资源的总分,并将总分排序后分段,选择处理资源组合分配任务,可以有效地利用处理资源,避免部分处理资源过于繁忙,部分处理资源却过于空闲,从而提高系统的处理效率。因此,采用本发明的方法和系统,可以实现资源的充分利用,节约成本,极大提高服务可用性。此外,在进行任务分配时实现自动分配,提高系统的健壮性。上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本发明的保护范围之内。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1