一种处理能力评估方法及装置与流程

文档序号:11829243阅读:212来源:国知局
一种处理能力评估方法及装置与流程

本发明涉及通信领域,尤其涉及一种处理能力评估方法及装置。



背景技术:

随着科学技术和互联网的发展,现代社会的信息量迅速增长,这些信息里积累着大规模的数据,这些数据中将会有部分数据存储在云平台中或借助云平台进行处理。借助Hadoop用户可以在不了解分布式底层细节的情况下,通过编写分布式并行程序,并将其运行在由成百上千个节点组成的大规模计算机集群上,以高效地存储、管理和分析这些存储在云平台中的数据。

Hadoop是一个开源的能够对大量数据进行分布式处理的软件架构,其最底部是一个分布式文件系统,通过采用分布式存储方式来进行海量数据存储,以提高数据的读写速度,并扩大存储容量,分布式文件系统的上一层是映射简化(MapReduce)引擎,它主要通过Map和Reduce这两个步骤对分布式文件系统中的海量数据进行并行处理,以保证分析和处理数据的高效性。正是由于Hadoop突出的优势,其在许多领域中被广泛应用,但是在应用的过程中,一些问题也随之产生,其中之一是企业为了能够方便的制定出购置计划并合理的进行计算资源分配,必须在搭建大规模计算机集群之前,对大规模计算机集群的处理能力进行准确的评估,但是,在评估大规模计算机集群的处理能力时,往往会遇到以下问题:

首先,在对大规模计算机集群进行评估时,需要将应用部署在大规模计算机集群上,但是由于计算机集群的规模较大(数百甚至上千个节点),导致难以找到一个可供评估的大规模计算机集群,另外,若直接在生产系统上进行评估,则会影响生产系统的正常运行,甚至给生产系统带来灾难,因此,无法找到合适的大规模计算机集群进行全系统的处理能力评估。

其次,即使找到合适的大规模计算机集群,在这由数百甚至上千个节点组成的计算机集群上进行全系统的处理能力评估,花费的时间会很长, 且能耗会很大,导致了评估成本的增加。



技术实现要素:

本发明提供一种处理能力评估方法及装置,在节省评估成本的前提下,实现了对大规模计算机集群的处理能力的评估。

为达到上述目的,本发明采用如下技术方案:

本发明的第一方面,提供一种处理能力评估方法,包括:

采集小规模计算机集群运行应用时的运行参数;

根据所述运行参数获取性能推演模型;

获取所述小规模计算机集群的配置信息和大规模计算机集群的配置信息;

根据所述小规模计算机集群的配置信息、所述大规模计算机集群的配置信息和所述性能推演模型,对大规模计算机集群的处理能力进行评估,以得到所述大规模计算机集群的处理能力;

其中,所述小规模计算机集群的配置信息包括:组成所述小规模计算机集群的节点数a,所述小规模计算机集群的待处理数据量x;所述大规模计算机集群的配置信息包括:组成所述大规模计算机集群的节点数b,所述大规模计算机集群的待处理数据量y;所述a和所述b均为正整数,且所述a小于所述b,且组成所述小规模计算机集群的节点与组成所述大规模计算机集群的节点的配置参数相同。

结合第一方面,在一种可能的实现方式中,所述运行参数包括:第一实际执行时间,为所述小规模计算机集群执行映射Map操作的实际执行时间;第二实际执行时间,为所述小规模计算机集群执行化简Reduce操作的实际执行时间;第一中央处理器CPU利用率,为所述小规模计算机集群执行所述Map操作时的CPU利用率;第二CPU利用率,为所述小规模计算机集群执行所述Reduce操作时的CPU利用率;第一输入/输出I/O等待时间,为所述小规模计算机集群执行所述Map操作时的I/O等待时间;第二I/O等待时间,为所述小规模计算机集群执行所述Reduce操作时的I/O等待时间;

所述根据所述运行参数获取性能推演模型,包括:

根据所述第一CPU利用率和所述第二CPU利用率获取所述应用的总 任务量;

根据所述应用的总任务量和第一I/O等待比率,获取第一理论执行时间;其中,所述第一I/O等待比率等于所述第一I/O等待时间与所述第一实际执行时间的比值,所述第一理论执行时间为所述小规模计算机集群运行单任务时执行所述Map操作的理论执行时间;

根据所述应用的总任务量和第二I/O等待比率,获取第二理论执行时间;其中,所述第二I/O等待比率等于所述第二I/O等待时间与所述第二实际执行时间的比值,所述第二理论执行时间为所述小规模计算机集群运行单任务时执行所述Reduce操作的理论执行时间;

根据所述第一实际执行时间获取第三理论执行时间,所述第三理论执行时间为所述大规模计算机集群运行单任务时执行所述Map操作的理论执行时间;

根据所述第二实际执行时间获取第四理论执行时间,所述第四理论执行时间为所述大规模计算机集群运行单任务时执行所述Reduce操作的理论执行时间;

根据所述第一理论执行时间、所述第二理论执行时间、所述第三理论执行时间、所述第四理论执行时间、所述第一实际执行时间和所述第二实际执行时间,获取所述性能推演模型。

结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述根据所述第一实际执行时间获取第三理论执行时间,包括:

获取第一拓展系数;

根据所述第一拓展系数和所述第一实际执行时间,获取所述第三理论执行时间;

其中,所述第一拓展系数=(a÷b)×(y÷x);

所述第一拓展系数、所述第一实际执行时间和所述第三理论执行时间之间满足以下条件:第三理论执行时间=第一实际执行时间×第一拓展系数。

结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述根据所述第二实际执行时间获取第四理论执行时间,包括:

获取第二拓展系数;

根据所述第二拓展系数和所述第二实际执行时间,获取所述第四理论执行时间;

其中,所述第二拓展系数=(C(D(y))÷C(D(x)))×(a÷b),D()为执行Map操作时输入数据量和输出数据量的关系函数,C()为执行Reduce操作时的算法复杂度;

所述第二拓展系数、所述第二实际执行时间和所述第四理论执行时间之间满足以下条件:第四理论时间=第二实际执行时间×第二拓展系数。

结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述推演模型为:

(第三理论执行时间÷第一理论执行时间)×第一实际执行时间+(第四理论执行时间÷第二理论执行时间)×第二实际执行时间。

结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述根据所述小规模计算机集群的配置信息、所述大规模计算机集群的配置信息和所述性能推演模型,对大规模计算机集群的处理能力进行评估,以得到所述大规模计算机集群的处理能力,包括:

根据所述a、所述x、所述b、所述y和所述性能推演模型,获取所述大规模计算机集群运行单任务时的理论执行时间;

根据所述大规模计算机集群运行单任务时的理论执行时间,获取所述大规模计算机集群运行单任务时的实际执行时间;

根据所述大规模计算机集群运行单任务时的实际执行时间和所述y,获取所述大规模计算机集群的处理能力。

本发明的第二方面,提供一种处理能力评估装置,包括:

采集单元,用于采集小规模计算机集群运行应用时的运行参数;

第一获取单元,用于根据所述采集单元采集到的所述运行参数获取性能推演模型;

第二获取单元,用于获取所述小规模计算机集群的配置信息和大规模计算机集群的配置信息;

评估单元,用于根据所述第二获取单元获取到的所述小规模计算机集群的配置信息、所述大规模计算机集群的配置信息和所述第一获取单元获取到的所述性能推演模型,对大规模计算机集群的处理能力进行评估,以 得到所述大规模计算机集群的处理能力;

其中,所述小规模计算机集群的配置信息包括:组成所述小规模计算机集群的节点数a,所述小规模计算机集群的待处理数据量x;所述大规模计算机集群的配置信息包括:组成所述大规模计算机集群的节点数b,所述大规模计算机集群的待处理数据量y;所述a和所述b均为正整数,且所述a小于所述b,且组成所述小规模计算机集群的节点与组成所述大规模计算机集群的节点的配置参数相同。

结合第二方面,在一种可能的实现方式中,所述运行参数包括:第一实际执行时间,为所述小规模计算机集群执行映射Map操作的实际执行时间;第二实际执行时间,为所述小规模计算机集群执行化简Reduce操作的实际执行时间;第一中央处理器CPU利用率,为所述小规模计算机集群执行所述Map操作时的CPU利用率;第二CPU利用率,为所述小规模计算机集群执行所述Reduce操作时的CPU利用率;第一输入/输出I/O等待时间,为所述小规模计算机集群执行所述Map操作时的I/O等待时间;第二I/O等待时间,为所述小规模计算机集群执行所述Reduce操作时的I/O等待时间;

所述第一获取单元,包括:

第一获取模块,用于根据所述第一CPU利用率和所述第二CPU利用率获取所述应用的总任务量;

第二获取模块,用于根据所述第一获取模块获取到的所述应用的总任务量和第一I/O等待比率,获取第一理论执行时间,根据所述第一获取模块获取到的所述应用的总任务量和第二I/O等待比率,获取第二理论执行时间;其中,所述第一I/O等待比率等于所述第一I/O等待时间与所述第一实际执行时间的比值,所述第一理论执行时间为所述小规模计算机集群运行单任务时执行所述Map操作的理论执行时间,所述第二I/O等待比率等于所述第二I/O等待时间与所述第二实际执行时间的比值,所述第二理论执行时间为所述小规模计算机集群运行单任务时执行所述Reduce操作的理论执行时间;

第三获取模块,用于根据所述第一实际执行时间获取第三理论执行时间,根据所述第二实际执行时间获取第四理论执行时间;其中,所述第三 理论执行时间为所述大规模计算机集群运行单任务时执行所述Map操作的理论执行时间,所述第四理论执行时间为所述大规模计算机集群运行单任务时执行所述Reduce操作的理论执行时间;

第四获取模块,用于根据所述第二获取模块获取到的所述第一理论执行时间和所述第二理论执行时间,所述第三获取模块获取到的所述第三理论执行时间和所述第四理论执行时间,以及所述第一实际执行时间和所述第二实际执行时间,获取所述性能推演模型。

结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述第三获取模块,具体用于:

获取第一拓展系数;

根据所述第一拓展系数和所述第一实际执行时间,获取所述第三理论执行时间;

其中,所述第一拓展系数=(a÷b)×(y÷x);

所述第一拓展系数、所述第一实际执行时间和所述第三理论执行时间之间满足以下条件:第三理论执行时间=第一实际执行时间×第一拓展系数。

结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述第三获取模块,具体用于:

获取第二拓展系数;

根据所述第二拓展系数和所述第二实际执行时间,获取所述第四理论执行时间;

其中,所述第二拓展系数=(C(D(y))÷C(D(x)))×(a÷b),D()为执行Map操作时输入数据量和输出数据量的关系函数,C()为执行Reduce操作时的算法复杂度;

所述第二拓展系数、所述第二实际执行时间和所述第四理论执行时间之间满足以下条件:第四理论时间=第二实际执行时间×第二拓展系数。

结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述推演模型为:

(第三理论执行时间÷第一理论执行时间)×第一实际执行时间+(第四理论执行时间÷第二理论执行时间)×第二实际执行时间。

结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述评估单元,具体用于:

根据所述a、所述x、所述b、所述y和所述性能推演模型,获取所述大规模计算机集群运行单任务时的理论执行时间;

根据所述大规模计算机集群运行单任务时的理论执行时间,获取所述大规模计算机集群运行单任务时的实际执行时间;

根据所述大规模计算机集群运行单任务时的实际执行时间和所述y,获取所述大规模计算机集群的处理能力。

本发明提供的处理能力评估方法及装置,首先采集小规模计算机集群运行应用时的运行参数,并根据采集到的运行参数获取性能推演模型,然后获取小规模计算机集群的配置信息和大规模计算机集群的配置信息,最后根据小规模计算机集群的配置信息、大规模计算机集群的配置信息和性能推演模型,对大规模计算机集群的处理能力进行评估,以得到大规模计算机集群的处理能力,使得在进行大规模计算机集群的处理能力评估时,无需寻找到合适的大规模计算机集群,且无需在找到的合适的大规模计算机集群上进行实际的操作,而是直接通过将大规模计算机集群的配置信息代入根据采集到的同构小规模计算机集群运行应用时的运行参数获取到的性能推演模型,实现对大规模计算机集群的处理能力的评估,从而在节省评估成本的前提下,实现了对大规模计算机集群的处理能力的评估。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例提供的一种处理能力评估方法流程图;

图2为本发明另一实施例提供的一种处理能力评估方法流程图;

图3为本发明另一实施例提供的一种处理能力评估装置组成示意图;

图4为本发明另一实施例提供的另一种处理能力评估装置组成示意图;

图5为本发明另一实施例提供的一种处理能力评估装置组成示意图。

具体实施方式

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

本发明一实施例提供一种处理能力评估方法,如图1所示,该方法可以包括:

101、采集小规模计算机集群运行应用时的运行参数。

具体的,当需要对大规模计算机集群的处理能力进行评估时,首先,构建一个小规模计算机集群,且组成该小规模计算机集群的节点与组成大规模计算机集群的节点的配置参数相同,然后在构建的小规模计算机集群上运行应用,并在应用运行时,处理能力评估装置采集该小规模计算机集群运行该应用时的运行参数。

102、根据运行参数获取性能推演模型。

其中,在处理能力评估装置采集到小规模计算机集群运行应用时的运行参数之后,可以根据采集到的运行参数获取性能推演模型,以根据该性能推演模型实现对大规模计算机集群的处理性能的评估。

103、获取小规模计算机集群的配置信息和大规模计算机集群的配置信息。

其中,小规模计算机集群的配置信息包括:组成小规模计算机集群的节点数a,小规模计算机集群的待处理数据量x;大规模计算机集群的配置信息包括:组成大规模计算机集群的节点数b,大规模计算机集群的待处理数据量y;a和b均为正整数,且a小于b。

104、根据小规模计算机集群的配置信息、大规模计算机集群的配置信息和性能推演模型,对大规模计算机集群的处理能力进行评估,以得到大规模计算机集群的处理能力。

其中,在处理能力评估装置获取到小规模计算机集群的配置信息、大规模计算机集群的配置信息和性能推演模型之后,便可以将小规模计算机 集群的配置信息和大规模计算机集群的配置信息代入性能推演模型中,以对大规模计算机集群的处理能力进行评估,进而得到大规模计算机集群的处理能力。

本发明提供的处理能力评估方法,首先采集小规模计算机集群运行应用时的运行参数,并根据采集到的运行参数获取性能推演模型,然后获取小规模计算机集群的配置信息和大规模计算机集群的配置信息,最后根据小规模计算机集群的配置信息、大规模计算机集群的配置信息和性能推演模型,对大规模计算机集群的处理能力进行评估,以得到大规模计算机集群的处理能力,使得在进行大规模计算机集群的处理能力评估时,无需寻找到合适的大规模计算机集群,且无需在找到的合适的大规模计算机集群上进行实际的操作,而是直接通过将大规模计算机集群的配置信息代入根据采集到的同构小规模计算机集群运行应用时的运行参数获取到的性能推演模型,实现对大规模计算机集群的处理能力的评估,从而在节省评估成本的前提下,实现了对大规模计算机集群的处理能力的评估。

本发明另一实施例提供一种处理能力评估方法,如图2所示,以MapReduce计算机集群为例对本发明实施例提供的处理能力评估方法的具体过程进行说明,该方法可以包括:

201、采集小规模计算机集群运行应用时的运行参数。

具体的,当需要对大规模计算机集群的处理能力进行评估时,首先,构建一个小规模计算机集群,且组成该小规模计算机集群的节点与组成大规模计算机集群的节点的配置参数相同,然后在构建的小规模计算机集群上运行应用,并在应用运行时,处理能力评估装置采集该小规模计算机集群运行该应用时的运行参数。

其中,节点的配置参数指的是软件配置,如操作系统版本,hadoop版本,hadoop配置参数等。

具体的,该运行参数可以包括:第一实际执行时间、第二实际执行时间、第一中央处理器(英文:Central Processing Unit,简称:CPU)利用率、第二CPU利用率、第一输入/输出(英文:input/output,简称:I/O)等待时间、第二I/O等待时间。

其中,第一实际执行时间为小规模计算机集群执行Map操作的实际 执行时间;第二实际执行时间为小规模计算机集群执行Reduce操作的实际执行时间;第一CPU利用率为小规模计算机集群执行Map操作时的CPU利用率;第二CPU利用率为小规模计算机集群执行Reduce操作时的CPU利用率;第一I/O等待时间为小规模计算机集群执行Map操作时的I/O等待时间;第二I/O等待时间为小规模计算机集群执行Reduce操作时的I/O等待时间。

202、获取小规模计算机集群的配置信息和大规模计算机集群的配置信息。

其中,小规模计算机集群的配置信息包括:组成小规模计算机集群的节点数a,小规模计算机集群的待处理数据量x。大规模计算机集群的配置信息包括:组成大规模计算机集群的节点数b,大规模计算机集群的待处理数据量y。a和b均为正整数,且a小于b。

在处理能力评估装置采集到小规模计算机集群运行应用时的运行参数之后,可以根据采集到的运行参数获取性能推演模型,具体的可以包括以下步骤203-步骤208:

203、根据第一CPU利用率和第二CPU利用率获取应用的总任务量。

其中,处理能力评估装置根据采集到的第一CPU利用率和第二CPU利用率,获得运行应用时该小规模计算机集群的CPU利用率曲线,然后通过对获得到CPU利用率曲线进行积分,便可以获取到应用的总任务量。

204、根据应用的总任务量和第一I/O等待比率,获取第一理论执行时间。

其中,第一I/O等待比率等于第一I/O等待时间与第一实际执行时间的比值,第一理论执行时间为小规模计算机集群运行单任务(单任务指的是在小规模计算机集群运行的应用中仅包含一个任务)时执行Map操作的理论执行时间。在处理能力评估装置获取到应用的总任务量之后,可以根据应用的总任务量和第一I/O等待比率获取小规模计算机集群运行单任务时执行Map操作的理论执行时间,即获取第一理论执行时间。

在本发明实施例中,处理能力评估装置根据应用的总任务量和第一I/O等待比率获取第一理论执行时间具体的可以是:首先,处理能力评估装置获取第一I/O等待比率(第一I/O等待比率等于第一I/O等待时间与 第一实际执行时间的比值),然后,用应用的总任务量除以1与第一I/O等待比率的差值,计算出的结果便是小规模计算机集群运行单任务时执行Map操作的理论执行时间,即第一理论执行时间。

205、根据应用的总任务量和第二I/O等待比率,获取第二理论执行时间。

其中,第二I/O等待比率等于第二I/O等待时间与第二实际执行时间的比值,第二理论执行时间为小规模计算机集群运行单任务时执行Reduce操作的理论执行时间。在处理能力评估装置获取到应用的总任务量之后,可以根据应用的总任务量和第二I/O等待比率获取为小规模计算机集群运行单任务时执行Reduce操作的理论执行时间,即获取第二理论执行时间。

在本发明实施例中,处理能力评估装置根据应用的总任务量和第二I/O等待比率获取第二理论执行时间具体的可以是:首先,处理能力评估装置获取第二I/O等待比率(第二I/O等待比率等于第二I/O等待时间与第二实际执行时间的比值),然后,用应用的总任务量除以1与第二I/O等待比率的差值,计算出的结果便是小规模计算机集群运行单任务时执行Reduce操作的理论执行时间,即第二理论执行时间。

需要说明的是,在本发明实施例中,步骤204和步骤205的执行没有先后顺序,也就是说,可以先执行步骤204,再执行步骤205,也可以先执行步骤205,再执行步骤204,当然,还可以同时执行步骤204和步骤205,本发明实施例在此对步骤204和步骤205的执行顺序不做具体限制,可以根据实际应用场景的需求进行选择和设置。

206、根据第一实际执行时间获取第三理论执行时间。

其中,第三理论执行时间为大规模计算机集群运行单任务时执行Map操作的理论执行时间。处理能力评估装置可以根据采集到的第一实际执行时间获取大规模计算机集群运行单任务时执行Map操作的理论执行时间,即获取第三理论执行时间。

在本发明实施例中,处理能力评估装置根据第一实际执行时间获取第三理论执行时间具体的可以是:

首先,处理能力评估装置获取第一拓展系数。

其中,由于在通过每个Map操作进行数据处理时,处理的数据量和算法不会因计算机集群中包含的节点数量和待处理数据量的增加而改变,且通过每个Map操作进行数据处理时,其对系统资源的需求也是基本相同的,计算机集群中包含的节点数量的多少和待处理数据量的大小影响的仅仅是Map操作的总数量的变化,因此需设置一个扩展系数来对节点数量和待处理数据量的变化进行调整,该拓展系数即为第一拓展系数,且第一拓展系数=(a÷b)×(y÷x),a为组成小规模计算机集群的节点数,b为组成所述大规模计算机集群的节点数,x为小规模计算机集群的待处理数据量,y为大规模计算机集群的待处理数据量。

然后,处理能力评估装置根据第一拓展系数和第一实际执行时间,获取第三理论执行时间。

其中,第一拓展系数、第一实际执行时间和第三理论执行时间之间满足以下条件:第三理论执行时间=第一实际执行时间×第一拓展系数。

207、根据第二实际执行时间获取第四理论执行时间。

其中,第四理论执行时间为大规模计算机集群运行单任务时执行Reduce操作的理论执行时间。处理能力评估装置可以根据采集到的第二实际执行时间获取大规模计算机集群运行单任务时执行Reduce操作的理论执行时间,即获取第四理论执行时间。

在本发明实施例中,处理能力评估装置根据第二实际执行时间获取第四理论执行时间具体的可以是:

首先,处理能力评估装置获取第二拓展系数。

其中,众所周知,Reduce操作的输入数据集是由Map操作产生的,计算机集群中包含的节点数量和待处理数据量的增加会导致Reduce操作的复杂度增加,因此需设置另一个扩展系数来对节点数量和待处理数据量的变化进行调整,且该扩展系数中需输入一些先验知识,具体的该拓展系数即为第二拓展系数,且第二拓展系数=(C(D(y))÷C(D(x)))×(a÷b),D()为执行Map操作时输入数据量和输出数据量的关系函数,C()为执行Reduce操作时的算法复杂度。

然后,处理能力评估装置根据第二拓展系数和第二实际执行时间,获取第四理论执行时间。

其中,第二拓展系数、第二实际执行时间和第四理论执行时间之间满足以下条件:第四理论时间=第二实际执行时间×第二拓展系数。

需要说明的是,在本发明实施例中,步骤206和步骤207的执行没有先后顺序,也就是说,可以先执行步骤206,再执行步骤207,也可以先执行步骤207,再执行步骤206,当然,还可以同时执行步骤206和步骤207,本发明实施例在此对步骤206和步骤207的执行顺序不做具体限制,可以根据实际应用场景的需求进行选择和设置。

208、根据第一理论执行时间、第二理论执行时间、第三理论执行时间、第四理论执行时间、第一实际执行时间和第二实际执行时间,获取性能推演模型。

其中,在处理能力评估装置获取到第一理论执行时间、第二理论执行时间、第三理论执行时间、第四理论执行时间之后,便可以根据第一理论执行时间、第二理论执行时间、第三理论执行时间、第四理论执行时间、第一实际执行时间和第二实际执行时间,获取性能推演模型,且考虑到单任务的理性情况下,计算机集群的资源完全为该任务所占用,因此该性能推演模型为:(第三理论执行时间÷第一理论执行时间)×第一实际执行时间+(第四理论执行时间÷第二理论执行时间)×第二实际执行时间。

在本发明实施例中,在处理能力评估装置获取到小规模计算机集群的配置信息、大规模计算机集群的配置信息和性能推演模型之后,便可以根据小规模计算机集群的配置信息、大规模计算机集群的配置信息和性能推演模型,对大规模计算机集群的处理能力进行评估,以得到大规模计算机集群的处理能力,具体的可以包括以下步骤209-步骤211:

209、根据a、x、b、y和性能推演模型,获取大规模计算机集群运行单任务时的理论执行时间。

其中,将组成小规模计算机集群的节点数a,小规模计算机集群的待处理数据量x,组成大规模计算机集群的节点数b,大规模计算机集群的待处理数据量y代入性能推演模型,便可以获得大规模计算机集群运行单任务时的理论执行时间。

210、根据大规模计算机集群运行单任务时的理论执行时间,获取大规模计算机集群运行单任务时的实际执行时间。

其中,由于在大规模计算机集群的实际使用过程中,绝大部分的应用场景都是多任务并存的,因此,假设在大规模计算机集群运行时其他任务CPU利用率之和随时间变化的函数为U(t),则单任务的实际CPU利用率为1-U(t),这样对单任务的实际CPU利用率进行积分,便可以得到大规模计算机集群运行单任务时的理论执行时间。如,大规模计算机集群运行单任务时的理论执行时间为T,那么可以得到方程:

<mrow> <mi>T</mi> <mo>=</mo> <munderover> <mo>&Integral;</mo> <mn>0</mn> <mi>T</mi> </munderover> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>U</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>)</mo> </mrow> <mo>&times;</mo> <mi>tdt</mi> </mrow>

解上述方程,t即为计算机集群运行单任务时的实际执行时间。

211、根据大规模计算机集群运行单任务时的实际执行时间和y,获取大规模计算机集群的处理能力。

其中,在处理能力评估装置获取到大规模计算机集群运行单任务时的实际执行时间之后,便可以根据大规模计算机集群运行单任务时的实际执行时间和大规模计算机集群的待处理数据量y计算得到大规模计算机集群的处理能力。

其中,大规模计算机集群运行单任务时的实际执行时间、y和大规模计算机集群的处理能力满足以下条件:

大规模计算机集群的处理能力=y÷大规模计算机集群运行单任务时的实际执行时间。

为了便于本领域技术人员的理解,本发明实施例在此对本发明的具体实施例过程进行举例说明。

例如,大规模计算机集群由1000个节点组成,需对该大规模计算机集群单独运行1000TB(其中,1TB=1024GB)的排序应用的处理能力进行评估。

首先,构建一个小规模计算机集群,该小规模计算机集群由5个节点组成,且组成该小规模计算机集群的节点与组成大规模计算机集群的节点的配置参数相同,并将待处理数据集大小为0.2TB的排序应用在构建的小规模计算机集群上运行。

然后,采用本发明提供的实现方式,具体的过程如下:

利用数据收集工具采集该小规模计算机集群运行该应用时的运行参数。假设,小规模计算机集群执行Map操作的实际执行时间,即第一实 际执行时间为240s,小规模计算机集群执行Reduce操作的实际执行时间,即第二实际执行时间为200s。

并根据采集到的小规模计算机集群执行Map操作时的CPU利用率,小规模计算机集群执行Reduce操作时的CPU利用率,小规模计算机集群执行Map操作时的I/O等待时间,小规模计算机集群执行Reduce操作时的I/O等待时间,利用积分方式求得小规模计算机集群运行单任务时执行Map操作的理论执行时间,即第一理论执行时间为200s,小规模计算机集群运行单任务时执行Reduce操作的理论执行时间,即第二理论执行时间为150s。

根据第一实际执行时间获取大规模计算机集群运行单任务时执行Map操作的理论执行时间,即第三理论执行时间。

其中,第一拓展系数=(1000TB÷0.2TB)×(5÷1000)=25,那么第三理论时间=240s×25=6000s。

根据第二实际执行时间获取大规模计算机集群运行单任务时执行Reduce操作的理论执行时间,即第四理论执行时间。

其中,执行Map操作时输入数据量和输出数据量的关系函数为:输出=输入;执行Reduce操作时的算法复杂度为n×log(n),第二拓展系数={[1000TB×log(1000TB)]÷[0.2TB×log(0.2TB)]}×(5÷1000)=65,那么,第四理论执行时间=200s×65=13000s。

根据第一理论执行时间、第二理论执行时间、第三理论执行时间、第四理论执行时间、第一实际执行时间和第二实际执行时间便可以计算得到大规模计算机集群运行单任务时的理论执行时间=(6000÷200)×240+(13000÷150)×200=24533s。

由于该大规模计算机集群是单独运行排序应用的,因此其他任务CPU利用率之和随时间变化的函数为U(t)=0,那么可以得到大规模计算机集群运行单任务时的实际执行时间=大规模计算机集群运行单任务时的理论执行时间=24533s,此时,便可以计算出该大规模计算机集群的处理能力为:1000TB×1024÷24533=42GB/s。

进一步的,在评估出大规模计算机集群的处理能力之后,还可以根据获取到的大规模计算机集群的处理能力进行计算机集群的性能优化,例如 根据获取到的大规模计算机集群的处理能力调整系统的硬件部署,根据获取到的大规模计算机集群的处理能力进行任务的分配等等。

需要说明的是,本发明实施例中仅是以MapReduce计算机集群为例对本发明实施例提供的大规模计算机集群的处理能力评估方法的具体过程进行说明的,对于类似MapReduce计算机集群,如,具备水平扩展容易,计算阶段性明显,不同节点执行的任务类似特点的计算机集群,也可以采用本发明实施例提供的处理能力评估方法进行性能预测与分析。

本发明提供的处理能力评估方法,首先采集小规模计算机集群运行应用时的运行参数,并根据采集到的运行参数获取性能推演模型,然后获取小规模计算机集群的配置信息和大规模计算机集群的配置信息,最后根据小规模计算机集群的配置信息、大规模计算机集群的配置信息和性能推演模型,对大规模计算机集群的处理能力进行评估,以得到大规模计算机集群的处理能力,使得在进行大规模计算机集群的处理能力评估时,无需寻找到合适的大规模计算机集群,且无需在找到的合适的大规模计算机集群上进行实际的操作,而是直接通过将大规模计算机集群的配置信息代入根据采集到的同构小规模计算机集群运行应用时的运行参数获取到的性能推演模型,实现对大规模计算机集群的处理能力的评估,从而在节省评估成本的前提下,实现了对大规模计算机集群的处理能力的评估。

并且,本发明实施例利用MapReduce框架本身的性质进行处理能力的评估,降低了大规模计算机集群处理能力评估的复杂性,且本发明实施例适用于运行各种类型应用的大规模计算机集群的处理能力的评估,并且采用本发明能够较为准确的评估出大规模计算机集群的处理能力。

本发明另一实施例提供一种处理能力评估装置,如图3所示,该装置可以包括:采集单元31、第一获取单元32、第二获取单元33、评估单元34。

采集单元31,用于采集小规模计算机集群运行应用时的运行参数。

第一获取单元32,用于根据所述采集单元31采集到的所述运行参数获取性能推演模型。

第二获取单元33,用于获取所述小规模计算机集群的配置信息和大规模计算机集群的配置信息。

评估单元34,用于根据所述第二获取单元33获取到的所述小规模计算机集群的配置信息、所述大规模计算机集群的配置信息和所述第一获取单元32获取到的所述性能推演模型,对大规模计算机集群的处理能力进行评估,以得到所述大规模计算机集群的处理能力。

其中,所述小规模计算机集群的配置信息包括:组成所述小规模计算机集群的节点数a,所述小规模计算机集群的待处理数据量x;所述大规模计算机集群的配置信息包括:组成所述大规模计算机集群的节点数b,所述大规模计算机集群的待处理数据量y;所述a和所述b均为正整数,且所述a小于所述b,且组成所述小规模计算机集群的节点与组成所述大规模计算机集群的节点的配置参数相同。

在本发明实施例中,进一步的,所述运行参数包括:第一实际执行时间,为所述小规模计算机集群执行映射Map操作的实际执行时间;第二实际执行时间,为所述小规模计算机集群执行化简Reduce操作的实际执行时间;第一中央处理器CPU利用率,为所述小规模计算机集群执行所述Map操作时的CPU利用率;第二CPU利用率,为所述小规模计算机集群执行所述Reduce操作时的CPU利用率;第一输入/输出I/O等待时间,为所述小规模计算机集群执行所述Map操作时的I/O等待时间;第二I/O等待时间,为所述小规模计算机集群执行所述Reduce操作时的I/O等待时间。

如图4所示,所述第一获取单元32可以包括:第一获取模块321、第二获取模块322、第三获取模块323、第四获取模块324。

第一获取模块321,用于根据所述第一CPU利用率和所述第二CPU利用率获取所述应用的总任务量。

第二获取模块322,用于根据所述第一获取模块321获取到的所述应用的总任务量和第一I/O等待比率,获取第一理论执行时间,根据所述第一获取模块321获取到的所述应用的总任务量和第二I/O等待比率,获取第二理论执行时间;其中,所述第一I/O等待比率等于所述第一I/O等待时间与所述第一实际执行时间的比值,所述第一理论执行时间为所述小规模计算机集群运行单任务时执行所述Map操作的理论执行时间,所述第二I/O等待比率等于所述第二I/O等待时间与所述第二实际执行时间的比 值,所述第二理论执行时间为所述小规模计算机集群运行单任务时执行所述Reduce操作的理论执行时间。

第三获取模块323,用于根据所述第一实际执行时间获取第三理论执行时间,根据所述第二实际执行时间获取第四理论执行时间;其中,所述第三理论执行时间为所述大规模计算机集群运行单任务时执行所述Map操作的理论执行时间,所述第四理论执行时间为所述大规模计算机集群运行单任务时执行所述Reduce操作的理论执行时间。

第四获取模块324,用于根据所述第二获取模块322获取到的所述第一理论执行时间和所述第二理论执行时间,所述第三获取模块323获取到的所述第三理论执行时间和所述第四理论执行时间,以及所述第一实际执行时间和所述第二实际执行时间,获取所述性能推演模型。

在本发明实施例中,进一步的,所述第三获取模块323,具体用于获取第一拓展系数,根据所述第一拓展系数和所述第一实际执行时间,获取所述第三理论执行时间。

其中,所述第一拓展系数=(a÷b)×(y÷x)。

所述第一拓展系数、所述第一实际执行时间和所述第三理论执行时间之间满足以下条件:第三理论执行时间=第一实际执行时间×第一拓展系数。

在本发明实施例中,进一步的,所述第三获取模块323,具体用于获取第二拓展系数,根据所述第二拓展系数和所述第二实际执行时间,获取所述第四理论执行时间。

其中,所述第二拓展系数=(C(D(y))÷C(D(x)))×(a÷b),D()为执行Map操作时输入数据量和输出数据量的关系函数,C()为执行Reduce操作时的算法复杂度。

所述第二拓展系数、所述第二实际执行时间和所述第四理论执行时间之间满足以下条件:第四理论时间=第二实际执行时间×第二拓展系数。

在本发明实施例中,进一步的,所述推演模型为:(第三理论执行时间÷第一理论执行时间)×第一实际执行时间+(第四理论执行时间÷第二理论执行时间)×第二实际执行时间。

在本发明实施例中,进一步的,所述评估单元34,具体用于根据所 述a、所述x、所述b、所述y和所述性能推演模型,获取所述大规模计算机集群运行单任务时的理论执行时间,根据所述大规模计算机集群运行单任务时的理论执行时间,获取所述大规模计算机集群运行单任务时的实际执行时间,根据所述大规模计算机集群运行单任务时的实际执行时间和所述y,获取所述大规模计算机集群的处理能力。

需要说明的是,本发明实施例提供的处理能力评估装置中各功能模块的具体工作过程可以参考方法实施例中对应过程的具体描述,本发明实施例在此不再详细赘述。

本发明实施例提供的处理能力评估装置,首先采集小规模计算机集群运行应用时的运行参数,并根据采集到的运行参数获取性能推演模型,然后获取小规模计算机集群的配置信息和大规模计算机集群的配置信息,最后根据小规模计算机集群的配置信息、大规模计算机集群的配置信息和性能推演模型,对大规模计算机集群的处理能力进行评估,以得到大规模计算机集群的处理能力,使得在进行大规模计算机集群的处理能力评估时,无需寻找到合适的大规模计算机集群,且无需在找到的合适的大规模计算机集群上进行实际的操作,而是直接通过将大规模计算机集群的配置信息代入根据采集到的同构小规模计算机集群运行应用时的运行参数获取到的性能推演模型,实现对大规模计算机集群的处理能力的评估,从而在节省评估成本的前提下,实现了对大规模计算机集群的处理能力的评估。

并且,本发明实施例利用MapReduce框架本身的性质进行处理能力的评估,降低了大规模计算机集群处理能力评估的复杂性,且本发明实施例适用于运行各种类型应用的大规模计算机集群的处理能力的评估,并且采用本发明能够较为准确的评估出大规模计算机集群的处理能力。

本发明另一实施例提供一种处理能力评估装置,如图5所示,包括:至少一个处理器41、存储器42、通信接口43和总线44,该至少一个处理器41、存储器42和通信接口43通过总线44连接并完成相互间的通信,其中:

所述总线44可以是工业标准体系结构(英文:Industry Standard Architecture,简称:ISA)总线、外部设备互连(英文:Peripheral Component Interconnect,简称:PCI)总线或扩展工业标准体系结构(英 文:Extended Industry Standard Architecture,简称:EISA)总线等。该总线44可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

所述存储器42用于存储可执行程序代码,该程序代码包括计算机操作指令。存储器42可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

所述处理器41可能是一个CPU,或者是特定集成电路(英文:Application Specific Integrated Circuit,简称:ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。

所述通信接口43,主要用于实现本实施例的设备之间的通信。

所述处理器41,用于执行所述存储器42中存储的可执行程序代码,具体的用于执行以下操作:

所述处理器41,用于采集小规模计算机集群运行应用时的运行参数;根据所述运行参数获取性能推演模型;获取所述小规模计算机集群的配置信息和大规模计算机集群的配置信息;根据所述小规模计算机集群的配置信息、所述大规模计算机集群的配置信息和所述性能推演模型,对大规模计算机集群的处理能力进行评估,以得到所述大规模计算机集群的处理能力。

其中,所述小规模计算机集群的配置信息包括:组成所述小规模计算机集群的节点数a,所述小规模计算机集群的待处理数据量x;所述大规模计算机集群的配置信息包括:组成所述大规模计算机集群的节点数b,所述大规模计算机集群的待处理数据量y;所述a和所述b均为正整数,且所述a小于所述b,且组成所述小规模计算机集群的节点与组成所述大规模计算机集群的节点的配置参数相同。

在本发明实施例中,进一步的,所述运行参数包括:第一实际执行时间,为所述小规模计算机集群执行映射Map操作的实际执行时间;第二实际执行时间,为所述小规模计算机集群执行化简Reduce操作的实际执行时间;第一中央处理器CPU利用率,为所述小规模计算机集群执行所述Map操作时的CPU利用率;第二CPU利用率,为所述小规模计算机集群执行所述Reduce操作时的CPU利用率;第一输入/输出I/O等待时 间,为所述小规模计算机集群执行所述Map操作时的I/O等待时间;第二I/O等待时间,为所述小规模计算机集群执行所述Reduce操作时的I/O等待时间。

所述处理器41,具体用于根据所述第一CPU利用率和所述第二CPU利用率获取所述应用的总任务量;根据所述应用的总任务量和第一I/O等待比率,获取第一理论执行时间,所述第一I/O等待比率等于所述第一I/O等待时间与所述第一实际执行时间的比值,所述第一理论执行时间为所述小规模计算机集群运行单任务时执行所述Map操作的理论执行时间;根据所述应用的总任务量和第二I/O等待比率,获取第二理论执行时间,所述第二I/O等待比率等于所述第二I/O等待时间与所述第二实际执行时间的比值,所述第二理论执行时间为所述小规模计算机集群运行单任务时执行所述Reduce操作的理论执行时间;根据所述第一实际执行时间获取第三理论执行时间,所述第三理论执行时间为所述大规模计算机集群运行单任务时执行所述Map操作的理论执行时间;根据所述第二实际执行时间获取第四理论执行时间,所述第四理论执行时间为所述大规模计算机集群运行单任务时执行所述Reduce操作的理论执行时间;根据所述第一理论执行时间、所述第二理论执行时间、所述第三理论执行时间、所述第四理论执行时间、所述第一实际执行时间和所述第二实际执行时间,获取所述性能推演模型。

在本发明实施例中,进一步的,所述处理器41,具体用于获取第一拓展系数;根据所述第一拓展系数和所述第一实际执行时间,获取所述第三理论执行时间。

其中,所述第一拓展系数=(a÷b)×(y÷x)。

所述第一拓展系数、所述第一实际执行时间和所述第三理论执行时间之间满足以下条件:第三理论执行时间=第一实际执行时间×第一拓展系数。

在本发明实施例中,进一步的,所述处理器41,具体用于获取第二拓展系数;根据所述第二拓展系数和所述第二实际执行时间,获取所述第四理论执行时间。

其中,所述第二拓展系数=(C(D(y))÷C(D(x)))×(a÷b),D() 为执行Map操作时输入数据量和输出数据量的关系函数,C()为执行Reduce操作时的算法复杂度。

所述第二拓展系数、所述第二实际执行时间和所述第四理论执行时间之间满足以下条件:第四理论时间=第二实际执行时间×第二拓展系数。

在本发明实施例中,进一步的,所述推演模型为:(第三理论执行时间÷第一理论执行时间)×第一实际执行时间+(第四理论执行时间÷第二理论执行时间)×第二实际执行时间。

在本发明实施例中,进一步的,所述处理器41,具体用于根据所述a、所述x、所述b、所述y和所述性能推演模型,获取所述大规模计算机集群运行单任务时的理论执行时间;根据所述大规模计算机集群运行单任务时的理论执行时间,获取所述大规模计算机集群运行单任务时的实际执行时间;根据所述大规模计算机集群运行单任务时的实际执行时间和所述y,获取所述大规模计算机集群的处理能力。

需要说明的是,本发明实施例提供的处理能力评估装置中各功能模块的具体工作过程可以参考方法实施例中对应过程的具体描述,本发明实施例在此不再详细赘述。

本发明实施例提供的处理能力评估装置,首先采集小规模计算机集群运行应用时的运行参数,并根据采集到的运行参数获取性能推演模型,然后获取小规模计算机集群的配置信息和大规模计算机集群的配置信息,最后根据小规模计算机集群的配置信息、大规模计算机集群的配置信息和性能推演模型,对大规模计算机集群的处理能力进行评估,以得到大规模计算机集群的处理能力,使得在进行大规模计算机集群的处理能力评估时,无需寻找到合适的大规模计算机集群,且无需在找到的合适的大规模计算机集群上进行实际的操作,而是直接通过将大规模计算机集群的配置信息代入根据采集到的同构小规模计算机集群运行应用时的运行参数获取到的性能推演模型,实现对大规模计算机集群的处理能力的评估,从而在节省评估成本的前提下,实现了对大规模计算机集群的处理能力的评估。

并且,本发明实施例利用MapReduce框架本身的性质进行处理能力的评估,降低了大规模计算机集群处理能力评估的复杂性,且本发明实施例适用于运行各种类型应用的大规模计算机集群的处理能力的评估,并且 采用本发明能够较为准确的评估出大规模计算机集群的处理能力。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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