CN107562532A - 一种预测设备集群的硬件资源利用率的方法及装置 - Google Patents
一种预测设备集群的硬件资源利用率的方法及装置 Download PDFInfo
- Publication number
- CN107562532A CN107562532A CN201710571243.4A CN201710571243A CN107562532A CN 107562532 A CN107562532 A CN 107562532A CN 201710571243 A CN201710571243 A CN 201710571243A CN 107562532 A CN107562532 A CN 107562532A
- Authority
- CN
- China
- Prior art keywords
- duration
- equipment
- performs
- task
- disk
- 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.)
- Granted
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
一种预测设备集群的硬件资源利用率的方法及装置,用于提高预测设备集群的硬件资源利用率的精准度。包括:预测设备获取第一设备集群的性能特征库,性能特征库包括第一设备集群包括的一个设备处理数据的不同阶段中,每个阶段的不同轮包含不同任务数量时所需的执行时长,以及设备在空闲态和运行任意一个任务时的资源开销;预测设备基于所述执行时长,预测第二设备集群中每个设备在处理数据过程中执行不同阶段分别被分配到的任务时所需的实际执行时长;预测设备基于所述实际执行时长、资源开销及第二设备集群的配置参数,预测第二设备集群的硬件资源利用率;其中,第二设备集群为基于第一设备集群扩容得到的虚拟仿真集群。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种预测设备集群的硬件资源利用率的方法及装置。
背景技术
随着科学技术和互联网的发展,现代社会的信息量迅速增长,这些信息积累着大规模的数据,这些数据中将会有部分数据存储在云平台中或借助云平台进行处理。借助海杜普Hadoop,用户在不了解分布式底层细节的情况下,通过编写分布式并行程序,并将其运行在由多个设备组成的设备集群上,以高效地存储、管理和分析这些存储在云平台中的数据。
Hadoop是一个能够对大量数据进行分布式处理的软件框架,其最底部是分布式文件系统(Hadoop Distributed File System,HDFS),通过采用分布式存储方式来进行海量数据存储,以提高数据的读写速率,并扩大存储容量,HDFS的上一层是映射简化(MapReduce)引擎,是通过Map和Reduce两个步骤对HDFS中国的海量数据进行并行处理,以保证分析和处理数据的高效性。正是由于Hadoop突出的优势,Hadoop在许多领域中被广泛应用,但是在应用的过程中,一些问题也随之产生,例如,为方便客户做投资决策,降低投资风险误差,或为方便地对计算机集群的相关参数进行优化,在对小规模的设备集群进行扩容得到大规模的设备集群之前,需要对待搭建的大规模设备集群的硬件资源利用率进行预测。
而目前,一般基于算法和架构原型验证对设备集群在扩容后的硬件资源利用率预测,仅能实现功能仿真或定性预测,无法做到定量预测。所以,现有技术中对设备集群在扩容后的硬件资源利用率的预测的精准度较低。
发明内容
本申请实施例提供一种预测设备集群的硬件资源利用率的方法,用于提高预测设备集群在扩容后的硬件资源利用率的精准度。
第一方面,本申请实施例提供了一种预测设备集群的硬件资源利用率的方法,该方法包括:预测设备获取第一设备集群的性能特征库,所述性能特征库包括所述第一设备集群包括的一个设备处理数据的不同阶段中,每个阶段的不同轮包含不同任务数量时所需的执行时长,以及所述设备在空闲态和运行任意一个任务时的资源开销;所述预测设备基于所述执行时长,预测第二设备集群中每个设备在处理数据过程中执行不同阶段分别被分配到的任务时所需的实际执行时长;所述预测设备基于所述实际执行时长、所述资源开销及所述第二设备集群的配置参数,预测所述第二设备集群的硬件资源利用率;其中,所述第二设备集群为基于所述第一设备集群扩容得到的虚拟仿真集群。
在本申请实施例中,首先获取第一设备集群的性能特征库,然后根据性能特征库中包括的执行时长,定量预测第二设备集群中每个设备在处理数据过程中执行不同阶段分别被分配到的任务时所需的实际执行时长,进而根据实际执行时长、性能特征库中包括的资源开销以及第二设备集群的配置参数,实现对第二设备集群的硬件资源利用率的定量预测,从而提高预测第二设备集群的硬件资源利用率的精准度。
在一个可能的设计中,所述不同阶段包括:设备执行数据映射操作的第一阶段;设备执行数据洗牌操作和合并操作的第二阶段;设备执行数据化简操作的第三阶段。
在本申请实施例中,不同阶段的划分可能有不同的形式,且以上几种只是举例,在本申请实施例中对不同阶段中具体包括哪几个阶段不作限制。
在一个可能的设计中,所述预测设备基于所述资源开销及所述配置参数,预测第二设备集群中的每个设备的内存利用率、CPU利用率及网络吞吐率;及所述预测设备基于所述实际执行时长、所述资源开销及所述配置参数,预测第二设备集群中的每个设备的磁盘读速率及磁盘写速率。
在本申请实施例中,第二设备集群中的每个设备的内存利用率、CPU利用率、网络吞吐率、磁盘读速率及磁盘写速率分别利用不同的参数进行预测,例如内存利用率、CPU利用率及网络吞吐率利用资源开销及第二设备集群的配置参数进行预测,磁盘读速率及磁盘写速率利用实际执行时长、资源开销及配置参数进行预测。
在本申请实施例中,第二设备集群中的每个设备的内存利用率、CPU利用率、网络吞吐率、磁盘读速率及磁盘写速率的预测还涉及到Hadoop配置参数,例如压缩比例。
在一个可能的设计中,所述预测设备基于所述实际执行时长、所述资源开销及所述第二设备集群的配置参数,预测所述第二设备集群的硬件资源利用率,包括:所述预测设备基于所述实际执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述不同阶段执行单任务时的磁盘读速率及磁盘写速率;所述预测设备基于预测的所述每个设备在所述不同阶段执行单任务时的磁盘读速率及磁盘写速率,预测所述每个设备在所述不同阶段执行多任务时的磁盘读写速率及磁盘写速率。
在本申请实施例中,首先预测每个设备在不同阶段执行单任务时的磁盘读速率及磁盘写速率,然后根据每个设备在不同阶段执行单任务时的磁盘读速率及磁盘写速率,预测每个设备在不同阶段执行多任务时的磁盘读速率及磁盘写速率。
在一个可能的设计中,所述不同轮包括:设备在所述不同阶段被分配的任务的任务数量大于所述设备在所述不同阶段能够处理的最大任务数量时,所述设备按照时间顺序处理所述任务的得到的首轮、中间轮及尾轮。
在本申请实施例中,在不同阶段被分配的任务数量大于设备在不同阶段能够处理的最大任务数量时,设备将被分配的任务按照多轮执行,从而测试得到第一设备集群中的设备在不同阶段的不同轮包含不同任务数量时的执行时长,细化了测试粒度,进而能够更精确的预测第二设备集群包括的每个设备的性能指标,以更精确预测第二设备集群包括的每个设备的硬件资源利用率。
相应的,在本申请实施例中,在不同阶段被分配的任务数量小于不同阶段能够处理的最大任务数量时,则一轮就能够执行完,该轮可以被称为尾轮。
在一个可能的设计中,所述实际执行时长包括:所述每个设备在所述第一阶段的首轮的执行时长;所述每个设备在所述第二阶段的首轮执行被分配到的任务时的第一平均执行时长和第一方差、在所述第二阶段的中间轮执行被分配到的任务时的第二平均执行时长和第二方差及在所述所述第三阶段的尾轮执行被分配到的任务时的第三平均执行时长和第三方差;以及,所述每个设备在所述第三阶段的首轮执行被分配到的任务时的第四平均执行时长和第四方差、在所述第三阶段的中间轮执行被分配到的任务时的第五平均执行时长和第五方差及在所述第三阶段的尾轮执行被分配到的任务时的第六平均执行时长和第六方差。
在本申请实施例中,第二设备集群中的每个设备在第二阶段和第三阶段中分别包括多轮,每一轮都会执行被分配的多个任务,相应的也就能够获得每个任务的执行时长,继而能够获取第二阶段和第二阶段中的每一轮执行被分配任务时的平均执行时长和方差。
在一个可能的设计中,在所述预测设备基于所述实际执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述不同阶段执行单任务时的磁盘读速率及磁盘写速率之前,所述方法还包括:所述预测设备基于所述第一平均执行时长和所述第一方差,获得第一正态分布曲线;所述预测设备基于所述第二平均执行时长和所述第二方差,获得第二正态分布曲线;所述预测设备基于所述第三平均执行时长和所述第三方差,获得第三正态分布曲线;所述预测设备基于所述第四平均执行时长和所述第四方差,获得第四正态分布曲线;所述预测设备基于所述第五平均执行时长和所述第五方差,获得第五正态分布曲线;所述预测设备基于所述第六平均执行时长和所述第六方差,获得第六正态分布曲线;其中,所述第一正态分布曲线、所述第二正态分布曲线及所述第三正态分布曲线分别是以所述每个设备在所述第二阶段的不同轮执行单任务时的第一执行时长为横轴,以所述第一执行时长的概率密度为纵轴的曲线,所述第四正态分布曲线、所述第五正态分布曲线及所述第六正态分布曲线分别是以所述每个设备在所述第三阶段的不同轮执行单任务时的第二执行时长为横轴,所述第二执行时长的概率密度为纵轴的曲线;所述预测设备基于所述实际执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述不同阶段执行单任务时的磁盘读速率及磁盘写速率,包括:所述预测设备从所述第一正态分布曲线上获取概率密度在第一范围内的第一组m个第一执行时长,从所述第二正态分布曲线上获取概率密度在所述第一范围内的第二组m个第一执行时长,从所述第三正态分布曲线上获取概率密度在所述第一范围内的M-2m个第一执行时长,共获得M个第一执行时长,以及从所述第四正态分布曲线上获取概率密度在第二范围内的第一组n个第二执行时长,从所述第五正态分布曲线上获取概率密度在所述第二范围内的第一组n个第二执行时长,从所述第六正态分布曲线上获取概率密度在所述第二范围的N-2n个第二执行时长,共获得N个第二执行时长,其中,M为所述每个设备在所述第二阶段被分配到的任务数量,N为所述每个设备在所述第三阶段被分配到的任务数量,m为所述每个设备在所述第二阶段能够处理的任务的最大任务数量,n为所述每个设备在所述第三阶段能够处理的任务的最大任务数量;所述预测设备基于所述M个第一执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述第二阶段执行单任务时的磁盘读速率及磁盘写速率;所述预测设备基于所述N个第二执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述第三阶段执行单任务时的磁盘读速率及磁盘写速率;以及所述预测设备基于所述每个设备在所述第一阶段的执行时长,预测所述每个设备在所述第一阶段执行所述单任务时的磁盘读速率及磁盘写速率。
在本申请实施例中,基于第二阶段的每一轮的平均执行时长和方差,得到第二阶段的每一轮的执行时长的正态分布曲线,基于第三阶段的每一轮的平均执行时长和方差,得到第三阶段的每一轮的执行时长的正态分布曲线,然后从得到的正态分布曲线上抽取执行时长,得到随机、不可复制且符合实际情况的执行时长,利用抽取的执行时长预测第二设备集群中每个设备在不同阶段执行任务时的磁盘读速率及磁盘写速率。
在一个可能的设计中,所述预测设备基于所述M个第一执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述第二阶段执行单任务时的磁盘读速率及磁盘写速率,包括:所述预测设备在获取所述第一组m个第一执行时长的第一预设时长之后,从所述第二组m个执行时长中随机抽取一个第一执行时长,与所述第一组m个第一执行时长中除所述第一预设时长外的m-1个第一执行时长构成一组第一执行时长,在所述M-2m个第一执行时长被抽取完时,共获得M-m+1组第一执行时长;其中,所述第一预设时长为所述M-m+1组第一执行时长中每一组的m个第一执行时长中执行时长最短的时长;所述预测设备基于所述M-m+1组第一执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述第二阶段执行所述单任务时的M-m+1组磁盘读速率及M-m+1组磁盘写速率;所述预测设备基于所述N个第二执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述第三阶段执行所述单任务时的磁盘读速率及磁盘写速率,包括:所述预测设备在获取所述第一组n个第二执行时长的第二预设时长之后,从所述第二组n个第二执行时长中随机抽取一个第二执行时长,与所述第一组n个第二执行时长中除所述第二预设时长外的n-1个第二执行时长构成一组第二执行时长,在所述第三组N-2n个第二执行时长被抽取完时,共获得N-n+1组第二执行时长;其中,所述第二预设时长为所述N-n+1组第二执行时长中每一组的n个第二执行时长中执行时长最短的时长;所述预测设备基于所述N-n+1组执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述第三阶段执行所述单任务时的N-n+1组磁盘读速率及N-n+1组磁盘写速率。
在本申请实施例中,从正态分布曲线上抽取执行时长后,将抽取的执行时长进行分组,然后计算每一组执行时长中每个执行时长对应磁盘读速率及磁盘写速率,从而能够避免单纯使用平均值带来的误差,将不同任务之间的差异性体现出来,从而能够提高预测第二设备集群的硬件资源利用率的精准度。
在本申请实施例中,为了避免重复计算磁盘读速率及磁盘写速率,也可以先利用抽取的执行时长计算每个设备在不同阶段执行单任务时的磁盘读速率及磁盘写速率,然后在对计算获取的每个设备在不同阶段执行单任务时的磁盘读速率及磁盘写速率进行分组。
在一个可能的设计中,在所述第一阶段,所述预测设备将所述每个设备在所述第一阶段执行所述单任务时的磁盘读速率乘以p,获得P-p+1个磁盘读速率和,将磁盘写速率乘以p,获得P-p+1个磁盘写速率和,P为所述每个设备在所述第一阶段被分配到的任务数量,p为所述每个设备在所述第一阶段能够处理的最大任务数量;在所述第二阶段,所述预测设备对所述M-m+1组磁盘读速率中每一组的磁盘读速率求和,获得M-m+1个磁盘读速率和,对所述M-m+1组磁盘写速率中每一组的磁盘写速率进行求和,获得M-m+1个磁盘写速率和,以及获取所述M-m+1组第一执行时长中每一组执行时长的时间;在所述第三阶段,所述预测设备对所述N-n+1组磁盘读速率中每一组的磁盘读速率求和,获得N-n+1个磁盘读速率,对所述N-n+1组磁盘写速率中每一组的磁盘写速率求和,获得N-n+1个磁盘写速率,以及获取所述N-n+1组第二执行时长中每一组执行时长的时间。
在本申请实施例中,对于第二阶段、第三阶段,将每一组磁盘读速率和磁盘写速率按照同一时间轴叠加,从而将单设备的单任务推广到整个第二设备集群并发多轮调度的情况,所以能够较为真实地刻画出第二设备集群的磁盘读速率和磁盘写速率。
第二方面,本申请实施例提供了一种预测设备集群的硬件资源利用率的装置。该装置包括:获取模块、第一预测模块和第二预测模块。获取模块、第一预测模块和第二预测模块可执行上述第一方面或第一方面的任意一种可能的设计所提供的方法中的相应功能。
第三方面,本申请实施例提供了一种预测设备集群的硬件资源利用率的装置。该装置包括:存储器,存储有计算机程序和第一设备集群的性能特征库;处理器,与存储器耦合。其中存储器所存储的计算机程序代码包括指令,当处理器执行所述指令时,所述指令使装置执行上述第一方面或第一方面的任意一种可能的设计中所提供的方法。
第四方面,本申请实施还提供一种计算机可读存储介质,存储有为执行上述第一方面、第一方面的任意一种设计的功能所用的计算机软件指令,其包含用于执行上述第一方面、第一方面的任意一种设计的方法所设计的程序。
本申请实施例提供的预测设备集群的硬件资源利用率的方法,首先获取第一设备集群的性能特征库,然后根据性能特征库中包括的执行时长,定量预测第二设备集群中每个设备在处理数据过程中执行不同阶段分别被分配到的任务时所需的实际执行时长,进而根据实际执行时长、性能特征库中包括的资源开销以及第二设备集群的配置参数,实现对第二设备集群的硬件资源利用率的定量预测,从而提高预测第二设备集群的硬件资源利用率的精准度。
附图说明
图1为本申请实施例提供的一种应用架构的示意图;
图2为本申请实施例提供的一种预测设备集群的硬件资源利用率的方法的流程图;
图3为本申请实施例提供的一种预测设备集群的硬件资源利用率的方法中对设备A进行基准测试的示意图;
图4A-图4D为本申请实施例提供的对设备A进行基准测试的测试用例;
图5为本申请实施例提供的对设备A进行基准测试过程中生成的日志进行分析的示意图;
图6为本申请实施例提供的一种预测设备集群的硬件资源利用率的完整示意图;
图7为本申请实施例提供的一种第二设备集群预测装置的示意图;
图8A-图8C为本申请实施例提供的设备B执行多任务时的内存利用率随时间的变化曲线、CPU利用率随时间的变化曲线及网络吞吐率随时间变化的曲线;
图9A-图9B为本申请实施例提供的对获取的M个第一执行时长和N个第二执行时长进行分组的示意图;
图10A-图10B为本申请实施例提供的设备B执行多任务时的磁盘读速率随时间的变化曲线以及磁盘写速率随时间的变化曲线;
图11为本申请实施例提供的一种预测设备集群的硬件资源利用率的装置的结构示意图;
图12为本申请实施例提供的另一种预测设备集群的硬件资源利用率的装置的结构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例作进一步地详细描述。
请参见图1,为本申请实施例的一种应用架构。图1中包括终端设备及服务器机架集群,下面分别介绍。
终端设备可以是笔记本、台式计算机、或者服务器等。
服务器机架集群包括多个机架,及与多个机架中每个机架配套的网络设备。每个机架包括多个服务器及架顶式交换机,每个机架中的多个服务器之间通过网线连接,连接至架顶式交换机。其中,服务器机架集群包括的每个服务器均安装有中央处理器(CentralProcessing Unit,CPU)、内存、网卡及本地存储器等通用基础器件。服务器机架集群包括的每个服务器运行有大数据平台计算引擎,例如Hadoop,或者是spak。在本申请实施例中,则是以Hadoop为例,其中,Hadoop的版本可以是Hadoop1.0版本,也可以是Hadoop2.0版本。下面以Hadoop的版本是Hadoop2.0版本为例,介绍Hadoop的硬件结构,包括:
(1)名称节点(Namenode,NN),用于对整个HDFS进行总控制。名称节点运行在服务器机架集群包括的服务器中的一个服务器上。
(2)辅助名称节点(Secondary Namenode,SecondaryNN),用于控制HDFS状态的辅助后台程序,可以保存名称节点的副本。辅助名称节点运行在服务器机架集群包括的服务器中的一个服务器上。
(3)数据节点(Datanode,DN),用于将HDFS数据块读、写到本地文件系统。数据节点运行在服务器机架集群中除运行有NN、SecondaryNN服务器外的其它每个服务器上。
在具体实现过程中,可以基于Hadoop中的MapReduce运行,也可以基于Hadoop中的Hive运行。下面则以MapReduce为例,介绍Hadoop2.0版本中MapReduce的架构,包括:客户端(Client)、Hadoop中心资源管理器(Resource Manager,RM)、Hadoop HDFS中心管理节点(Node Manager,NM),其中:
(1)、Client,每一个Job都会在用户端通过Client类将应用程序以及配置参数打包成Java归档文件(Java Archive File,JAR)存储在HDFS,并把存储路径提交到RM所在的服务器上。
(2)、RM,用于统一管理和分配服务器机架集群中所有资源,RM接收NM发送的汇报。其中,RM可以与NN位于同一服务器上,也可以与NN位于不同服务器上。
(3)、NM,用于管理资源容器(Container),Container上封装了每个服务器上的一定量的资源。所以,NM用于监控每个Container的资源使用情况,例如,CPU、内存、磁盘、或是网络,并将监控的结果汇报给RM。其中,NM运行在DN所在的服务器上。
下面以一个服务器为例,基于Mapreduce的架构介绍Mapreduce的内部逻辑,Mapreduce的运行过程包括:
Map阶段:HDFS是以固定大小的块(block)为基本单位存储数据,MapReduce处理数据是以片(Split)为单位,一个Split可以对应一个block,也可以对应多个block,在本申请实施例中,以一个Split对应一个block为例。在Client向RM提交一个Job,在HDFS中对应存储4个block,则对应有4个Split,分别为Split0、Split1、Split2和Split3,然后通过InputFormat函数来读取每个Split中的数据,把数据解析成(键、值)((key,value)),发送给Mapper函数进行处理。每个Mapper将输入(key,value)数据解析成对应的单词和词汇,例如第一个Mapper输出(a,1)、(b,1);第二个Mapper输出(c,1)、(c,1);第三个Mapper输出(a,1)、(c,1)等,进一步对每个Mapper输出的数据进行合并、分区。
Shuffle+Merge阶段:将每个Mapper输出的数据中值相同的数据复制到同一个Reducer中。
Reduce阶段:对获取的数据进行化简,例如一个Reducer读取两个(c,1)键值对数据,然后进行统计得出结果(c,2)。
Hadoop因高可靠性、高扩展性、高效性等突出优势得到广泛应用,但是在得广泛应用的同时,也存在一些问题,例如为方便客户做投资决策,降低投资风险误差,或为方便地对计算机集群的相关参数进行优化,在对小设备集群进行扩容得到大设备集群之前,需要对待搭建的大设备集群的性能指标进行预测。
在具体实现过程中,待搭建大设备集群往往包括数百甚至上千个服务器,导致难以找到一个可供预测的大设备集群。而目前,对待搭建的大设备集群的硬件资源利用率的预测,主要有以下三种途径:途径1、依靠专家经验进行灰盒人工估计;途径2、搭建全量真实环境;途径3、单一的仿真或机器学习。虽然上述三种途径都能够在一定程度上对大设备集群的硬件资源利用率进行预测,但也都存在一些缺陷,例如途径1的自动化程度较低,针对不同的应用的可复制性较差;途径2对于概念验证(Proof of Concept,POC)局点、公有云租借场景,在实验室搭建全量真实环境,往往难以满足项目的预测需求;途径3是实现功能仿真,机器学习仅能解决相同规模集群的硬件资源利用率的回归预测或定性预测。
鉴于此,本申请实施例提供一种预测设备集群的硬件资源利用率的方法,在该预测设备集群的硬件资源利用率的方法中,首先获取第一设备集群的性能特征库,然后根据性能特征库中包括的执行时长,定量预测第二设备集群中每个设备在处理数据过程中执行不同阶段分别被分配到的任务时所需的实际执行时长,进而根据实际执行时长、性能特征库中包括的资源开销以及第二设备集群的配置参数,实现对第二设备集群的硬件资源利用率的定量预测,从而能够提高预测第二设备集群的硬件资源利用率的精准度。
请参见图2,本申请实施例提供一种预测设备集群的硬件资源利用率的方法,该方法的流程描述大致如下:
S201:预测设备获取第一设备集群的性能特征库,所述性能特征库包括所述第一设备集群包括的一个设备处理数据的不同阶段中,每个阶段的不同轮包含不同任务数量时所需的执行时长,以及所述设备在空闲态和运行任意一个任务时的资源开销。
具体的,在需要对第二设备集群进行性能预测时,首先要构建第一设备集群,第一设备集群为真实搭建的集群,第二设备集群就是基于第一设备集群扩容得到的虚拟仿真集群。在本申请实施例中,组成第一设备集群的每个设备相同,组成第一设备集群的设备与组成第二设备集群的设备的配置参数相同,其中,配置参数指的是软件配置,例如操作系统版本、Hadoop版本、Hadoop配置参数等。
在本申请实施例中,预测设备的实现方式包括但不限于以下两种方式,下面分别介绍。
作为一个示例,预测设备为图1所示的终端设备。在该示例中,预测设备获取性能特征库的实现方式,可以是从第一设备集群获取第一设备集群中包括的至少一个设备处理数据的过程中生成的日志,然后基于获取的日志分析得到,也可以直接从第一设备集群获得,也就是说性能特征库是由第一设备集群基于第一设备集群中包括的至少一个设备处理数据的过程中生成的日志分析得到的。
作为另一个示例,预测设备包括图1中所示的终端设备以及后台服务器机架集群,后台服务器机架集群为真实搭建的集群。在该示例中,由终端设备从第一设备集群获取第一设备集群中包括的至少一个设备处理数据的过程中生成的日志,终端设备将获取的日志转发给台服务器机架集群,由后台服务器机架集群对日志进行分析得到性能特征库。
下面以预测设备是图1所述的终端设备,介绍预测设备获取性能特征库的过程。
在具体实现过程中,若要获取性能特征库,则需要事先对第一设备集群进行基准性能测试。在本申请实施例中,由于第一设备集群中除运行NN、SecondaryNN的设备外,其它每个设备均相同,所以,获取其它每个设备中任意一个设备在处理数据过程中在不同阶段中,每个阶段的不同轮分别包括不同任务数量时所需消耗的执行时长即可,在下面介绍中,将任意一个设备称为A。
在本申请实施例中,基于上述对MapReduce的运行过程的介绍可知,对设备A的测试包括三个阶段,分别为:执行映射操作的第一阶段,指的就是Map阶段;执行洗牌操作和合并操作的第二阶段,指的就是Shuffle+Merge阶段;执行化简操作的第三阶段,指的就是Redcue阶段。
在本申请实施例中,不同阶段中的每个阶段还包括不同的子阶段,例如第一阶段包括:max Container Capability子阶段、Got allocated containers子阶段及fromSCHEDULED to RUNNING子阶段、jvm.xxxx.xxxx.m.xxxxxxxx giving task子阶段、Numcompleted Tasks子阶段;第二阶段包括:Got allocated containers子阶段、shuffle@子阶段、EventFetcher子阶段及skiprecords子阶段;第三阶段包括:from SCHEDULED toRUNNING子阶段、jvm.xxxx.xxxx.m.xxxxxxx given task子阶段、done acknowledgement子阶段、Num completed Task子阶段及Moved tmp to done子阶段。虽然每个阶段中包括不同的子阶段,但是在本申请实施例的介绍过程中,仍以上述第一阶段、第二阶段及第三阶段为主。
在本申请实施例中,设备A在不同阶段中每个阶段被分配的任务数大于设备A能够处理的任务的最大任务数量时,设备A则需要按照时间顺序处理被分配的任务,也就是分为多轮处理被分配的任务,因此,在本申请实施例中,请参见图3,对设备A进行的基准测试包括四部分,分别是对设备A进行的系统默认开销测试,以及不同阶段的首轮测试、中间轮测试、尾轮测试,下面分别介绍。
一、对设备A进行不同阶段的首轮测试、中间轮测试及尾轮测试。
第一阶段:以设备A能够并发执行的map数是n=25为例,当Client向RM提交的一个作业为4480M,HDFS存储的块单位为64M时,4480M的数据则以70个块分别存储在HDFS上,70个块对应70个Split,70个Split也就对应70个map,70个map任务大于设备A能够并发执行的map数,这种情况下,则要通过多轮处理设备A被分配的任务。由此设备A处理完在Map阶段被分配的70个map任务,则需要执行2.8轮,也就是需要执行三轮,分别为首轮、中间轮及尾轮。相应的,在首轮执行25个map任务,在中间轮执行25个map任务,在尾轮执行20个map任务。在具体实现过程中,当设备A被分配的map任务数为70个时,在尾轮测试中,需要执行的map任务为20个;当设备A被分配的map任务数为65个时,在尾轮测试中,需要执行的map任务为15个;当设备A被分配的map任务数为60个时,在尾轮测试中,需要执行的map任务为10个;当设备A被分配的map任务数为55个时,在尾轮测试中,需要执行的map任务数为5个;当设备A被分配的map任务数为51个时,在尾轮测试中,需要执行的map任务数为1个。在本申请实施例中,针对多种情况对设备A进行测试,得到设备A在第一阶段包括不同任务数量时的执行时长,设备A在第一阶段的测试用例请参见图4A。
第二阶段:在该阶段中,由于是利用线程读取从第一设备集群包括的所有设备在Map阶段输出的任务。以第一设备集群中包括4个设备,4个设备中的每个设备能够并发执行map数是40,每个线程能够读取的任务数为70为例,在这种情况下,要读取完160个任务,则需要执行2.65轮,也就是需要执行三轮,分别为首轮、中间轮及尾轮。相应的,就是在首轮中读取70个map任务、在中间轮中读取70个map任务、在尾轮中读取20个map任务,由于在首轮和中间轮测试中,一次读取的任务数超出设备A能够并行执行的map数,所以,对应首轮和中间轮的测试用例,请参考图4B。在尾轮中,获取map任务少于设备A能够并行执行的map数,所以,对应尾轮的测试用例,请参考图4C。
第三阶段:以设备A能够并发执行的reduce数k=4,设备A在第三阶段被分配的reduce任务数是11,大于设备A能够并发执行的reduce数,在这种情况下,则要通过多轮处理设备A在第三阶段被分配的任务。由此设备A处理完被分配的10个reduce任务,则需要执行2.75轮,也就是需要执行三轮,分别是首轮、中间轮及尾轮。相应的,在首轮执行4个reduce任务,在中间轮执行4个reduce任务,在尾轮执行3个reduce任务。在具体实现过程中,当设备A被分配的reduce任务为11个时,在尾轮测试中,执行的reduce任务为3个;当设备A被分配的reduce任务为10个时,在尾轮测试中,执行的reduce任务为2个;当设备A被分配的reduce任务为9个时,在尾轮测试中,执行的reduce任务为1个。在本申请实施例中,针对多种情况对设备A进行测试,得到设备A在第三阶段包括不同任务数量时的执行时长,设备A在第三阶段的测试用例请参见图4D。
在本申请实施例中,通过设置图4A-图4D的基准测试用例,并在第一设备机群上运行基准测试用例,能够准确测试得到第二设备集群中一个设备处理被分配作业时,执行不同阶段中,每个阶段的不同轮包括不同任务数量时的执行参数,进而能够准确预测第二设备机群在处理被分配作业时,每个设备的性能指标。
具体实现过程中,通过上述图4A-图4D的测试用例在对设备A进行测试,设备A在不同阶段中,每个阶段的不同轮生成的日志被存储在HDFS上。若要对测试过程中生成的日志进行分析,则需要将日志拷贝到操作系统,例如Linux本地。下面介绍根据测试过程中生成的日志获取执行时长的过程,请参见图5,包括如下步骤:
获取对第一设备集群中的设备进行基准性能测试过程中生成的日志;
从日志中提取包括预设关键字的日志内容,生成样本数据;
对样本数据进行拟合,得到执行时长。
在本申请实施例中,能够获取不同预设关键字出现在日志中的时间,而两个关键字出现的时间相减即可得到该两个关键字之间的时间段,从而也就能够得到设备A在执行被分配的任务时在各阶段的执行时长。下面分别对第一阶段、第二阶段、第三阶段的预设关键字进行介绍。
第一阶段的测试生成的日志中包括的预设关键字:容器最大容量(max ContainerCapability)、Got allocated containers、from SCHEDULED to RUNNING、jvm.xxxx.xxxx.m.xxxxxxx given task、Num completed Task,其中,预设关键字Gotallocated containers出现在日志的时间点-预设关键字Num completed Task出现在日志的时间点即为设备A在第一阶段执行单个map任务的执行时长。
第二阶段的测试生成的日志中包括的预设关键字:Got allocated containers、shuffle@、EventFetcher、skiprecords,其中,预设关键字Got allocated containers出现在日志的时间点-预设关键字EventFetcher出现在日志的时间点为设备A在执行单个reduce任务的shuffle阶段的执行时长,预设关键字EventFetcher出现在日志的时间点-预设关键字skiprecords出现在日志的时间点为设备A执行单个reduce任务的Merge阶段的执行时长。
第三阶段的尾轮测试生成的日志中包括的预设关键字:from SCHEDULED toRUNNING、jvm.xxxx.xxxx.m.xxxxxxx given task、skiprecords、done acknowledgement、Num completed Task、Moved tmp to done;在第三阶段的首轮和中间轮测试生成的日志中包括的预设关键字包括:Elapsed Time shuffle、Elapsed Time merge、Elapsed Timereduce、Elapsed Time,其中,预设关键字skiprecords出现在日志的时间-预设关键字Moved tmp to done出现在日志的时间为单个reduce的reduce计算时间。
在按关键字提取日志内容后,对提取的日志内容进行统计分析,将得到的不同阶段中,每一阶段的不同轮的执行时长。将不同阶段中,每一阶段的不同轮的执行时长填入到图4A-图4D中对应的位置处,进而得到不同阶段的关于执行时长的二维表格,然后对每一张二维表格进行拟合,并存储为timei=fi(map-num,red-num)。
二、对第一设备集群进行系统默认开销测试。
在本申请实施例中,还需要对设备A进行系统默认开销和性能特性测试。在该测试中,以并发执行map数是4000,并发执行reduce数是1为测试用例,用于生成第二设备集群的仿真模型的配置文件。系统默认开销指的是在设备A处于空闲态和运行任意一个任务时的资源开销,具体请参考下表1:
表1
system_mem | 4.93% | 单机性能决定 |
mapmem | 0.8G | 单机性能决定 |
allmem_single | 378G | 单机性能决定 |
start_merge_files | 128个 | 单机性能决定 |
merge_file_sizes | 40.3G | 单机性能决定 |
system_cpu | 1% | 单机性能决定 |
map_cpu | 1.2% | 单机性能决定 |
reduce_cpu | 3% | 单机性能决定 |
merge_cpu_change | 1% | 单机性能决定 |
merge_time | 24min | 单机性能决定 |
net_down | 5M/s | 单机性能决定 |
spill_down_ratio | 70% | 单机性能决定 |
Shuffle_data_ratio | 100 | 任务类型决定 |
Spill_todisk_data_ratio | 42.8 | 任务类型决定 |
Sort_read_disk_ratio | 42.8 | 任务类型决定 |
Sort_write_disk_ratio | 100 | 任务类型决定 |
Map_second_compress | 40 | 任务类型决定 |
其中,system_mem是指设备A处于空闲态时,设备A上启动的服务所占的系统内存,可以在设备A处于空闲态时,查看Hadoop运维管理服务中的内存监控项获得。其中,设备A启动的服务可以是HDFS、另一种资源协调者(Yet Another Resource Negotiator,YARN)等。
mapmem是指单个map container运行时所占的实际物理内存,mapmem的上限可以根据用户指定的mapredcue.map.java.opts参数获得,下限与每个map的输入数据量和业务类型相关,在作业日志记录服务jobhistory中参看该种业务类型的任务的counter中的物理内存项,即可查看map所占的实际物理内存。
allmem_single是指设备A的总内存,和设备A的硬件性能相关,可以通过查看设备A的硬件参数即可获得。
start_merge_files是指merge阶段时开始merge的阈值,从jobhistory的reduce日志里查看具体的reduce的shuffle日志即可。例如找到第一次merge的开始语句,查看该第一次merge的开始语句之前出现的spill的次数,统计出来即为start_merge_files。
merge_file_sizes是指设备A每次merge时merge到磁盘的数据量,从reduce的shuffle日志中查看merge的结束语句,其中会给出每次merge时,merge到磁盘的数据量,merge_file_size是一个固定值。
system_cpu是指设备A处于空闲态时,设备A启动的服务所占的系统CPU。可以在设备A处于空闲态时,通过查看Hadoop运维管理服务中的CPU监控项得到。
map_cpu是指单个map container运行时所使用的CPU比率,map_cpu与业务类型和每个map的输入数据量相关。可以在设备A上运行map任务时,通过查看设备A的CPU监控项得到。
reduce_cpu是指单个reduce container运行时所使用的CPU比率。可以在设备A上运行reduce任务时,通过查看设备A的CPU监控项得到。
merge_cpu_change是指在设备A在进行merge时,通过查看CPU监控项得到的在merge时CPU的变化情况。例如通过根据reduce日志中的merge时间,在Hadoop运维管理服务中对应的merge的时间段的CPU监控项,查看CPU降低的幅度值,然后利用CPU降低的幅度值除以设备A并发执行的reduce数,就是设备A上每个reduce container的merge_cpu_change。
merge_time是指merge阶段的持续时间,通过在jobhistory中查看reduce的shuffle日志得到merge一次的时间。
net_down是指在merge阶段,网络吞吐率下降的幅度。可以通过查看Hadoop运维管理服务的监控曲线历史报表的网络读写项在merge时间段内下降的幅度,然后再用网络读写项在merge时间段内下降的幅度除以设备A并发执行的reduce数即可得到。例如查看jhist网页,查找显示的merge字段,按照merge出现的时间点比对Hadoop运维管理服务的监控曲线历史报表的网络读写项相应时间点,从而得到merge在Hadoop运维管理服务的监控曲线历史报表中的开始时间,再查看相应网络读写数值下降幅度并计算即可。
spill_down_ratio是指在merge阶段,spill的速率下降的比率。从jobhistory中的reduce的shuffle日志,查看在merge的开始语句之前spill一次所需要的时间,以及在merge的开始语句之后,结束语句之前spill一次所需要的时间,然后将merge的开始语句之前spill一次所需要的时间除以在merge的开始语句之后结束语句之前spill一次所需要的时间,即可得到spill_dowm_ratio。
shuffle_data_ratio是指shuffle阶段,拉取从map输出的数据量占Client向RM提交的一个作业的输入数据量的比例。首先通过查看reduce日志,根据reduce用于shuffle拉取的从map输出数据的内存大小,以及在日志中查看spill的次数,确定redeuce拉取从map输出的数据量,记为data1,然后利用data1除以一个作业的输入数据量,获得一个比值,记为ratio1。根据ratio1确定的比例画预测曲线,然后以Hadoop运维管理服务曲线为基准调整预测曲线,例如若预测曲线比Hadoop运维管理服务的曲线低20%,则将根据ratio1确定出的比例增大20%作为shuffle_data_ratio值。在本申请实施例中,利用设备A的Hadoop运维管理服务曲线对根据ratio1确定的比例进行调整,使得在使用者不用清楚不同任务运行的内部原理,而仅知道mapreduce的基本框架和数据流向的情况下,也能够进行。
sort_read_disk_ratio是指排序sort阶段从磁盘读取的数据量占Client向RM提交的一个作业的输入数据量的比例。通过查看spill一次的数据量,用spill后存入磁盘的数据量大小除以spill之前在内存中的数据量,得到对拉取从map输出的数据的压缩率,然后利用压缩率乘以shuffle_data_ratio即可得到sort_read_disk_ratio。
sort_write_disk_ratio是指sort阶段写入磁盘的数据量占Client向RM提交的一个作业的输入数据量的比例,通过在jobhistory的counter中查看reduce写入HDFS的数据量,将reudce写入HDFS的数据量除以一个作业的输入数据量即可得到sort_write_disk_ratio。
map_second_compress是指map的第二次压缩比率,从jobhistory的counter中查看map写入到磁盘的数据总量即可。
在本申请实施例中,根据对第一设备集群中设备A的基准性能测试,以及对第一设备集群进行系统默认开销测试便可得到第一设备集群的性能特征库,也就是说第一设备集群的性能特征库中包括一个设备处理数据的不同阶段中,每个阶段的不同轮包括不同任务数量时所需的执行时长,以及设备在空闲态和运行任意一个任务时的资源开销。
S202:预测设备基于所述执行时长,预测第二设备集群中每个设备在处理数据过程中执行不同阶段分别被分配到的任务时所需的实际执行时长。
在本申请实施例中,要对第二设备集群中每个设备在处理数据过程中执行不同阶段分别被分配到的任务时所需的实际执行时长进行预测,则需要获取第二设备集群的配置参数,包括第二设备集群需要处理的数据量,第二设备集群中每个设备的并发执行map数、并发执行reduce数、map总数及reduce总数。其中,map总数和reduce总数为根据第二设备集群需要处理的数据量得到的,例如第二设备集群需要处理的数据量为0.5TB,HDFS以块存储,块的大小为64M。因此,0.5TB数据将以8192块分别存储在HDFS上,8192个块则分别对应8192个Split,8192个Split对应着8192个map任务。
在对第二设备集群中每个设备在处理数据过程中执行不同阶段分别被分配到的任务时所需的实际执行时长进行预测过程中,首先根据第二设备的配置参数,也就是第二设备集群中每个设备并发执行map数、并发执行reduce数,确定第一阶段和第三阶段的每一轮的执行时长,根据每个设备并发执行map数、并发执行reduce数、map总数及reduce总数,确定第二阶段的每一轮的执行时长,然后根据不同阶段中,每一阶段的不同轮的执行时长调用触发事件。下面以第二设备集群中每个设备并发执行map数是25、并发执行reduce数是10、map总数是1000、reduce总数是100为例,介绍预测第二设备集群中每个设备在处理数据过程中执行不同阶段分别被分配到的任务时所需的实际执行时长的过程。
在第一阶段,可以默认运行于第一阶段对应的仿真程序。
在第二阶段,根据并发执行map数、并发执行reduce数,从图4A所示的表中确定与并发执行map数、并发执行reduce数对应的第一阶段的尾轮的执行时长,在第一阶段的尾轮执行完时,调用用于触发第二设备集群中的设备从第一状态变迁到第二状态的触发事件,也就是触发设备从第一阶段变迁到第二阶段,执行与第二阶段对应的仿真程序,具体的,在第二设备集群中的设备在第二阶段中执行完第一轮时,会停留在第二阶段,继续执行第二轮,直至到尾轮结束,等待触发事件的发生。
在第三阶段,根据并发执行map数、并发执行reduce数、map总数及reduce总数,从图4B及图4C所示的表中,确定第二阶段的每一轮的执行时长。在第二阶段的尾轮结束时,调用用于触发第二设备集群中的设备从第二状态变迁到第三状态的触发事件,也就是触发设备从第二阶段变迁到第三阶段,执行与第三阶段对应的仿真程序,具体的,第二设备机群中的设备在第三阶段中执行完第一轮时,会停留在第三阶段,继续执行第二轮,直至尾轮结束。
在本申请实施例中,通过记录不同阶段中,每个阶段的不同轮的仿真时长,便可得到第二设备集群中每个设备在执行被分配任务时,在每个阶段的不同轮的执行时长,根据每个设备在每个阶段的不同轮的执行时长获得,第一阶段中,在首轮中并发执行map任务的执行时长;第二阶段中,首轮执行单个任务的第一平均执行时长和第一方差,在中间轮执行单个任务的第二平均执行时长和第二方差,在尾轮执行单个任务的第三平均执行时长和第三方差;第三阶段中,首轮执行单个任务的第四平均执行时长和第四方差,在中间轮执行单个任务的第五平均执行时长和第五方差,在尾轮执行单个任务的第六平均执行时长和第六方差。
S203:预测设备基于实际执行时长、资源开销及第二设备集群的配置参数,预测第二设备集群的硬件资源利用率。
请参见图6,为本申请实施例提供的一种预测设备集群的硬件资源利用率的整体流程示意图,图6中包括:
第一设备集群的测试装置,用于对第一设备集群中的设备A进行基准测试;
大数据分析装置,用于从对设备A进行基准测试过程中生成的日志中提取包括预设关键字日志内容生成样本数据,以及对样本数据进行拟合,输出性能特征库;
第二设备集群预测装置,包括第二设备集群的性能预测模型及第二设备集群的硬件资源利用率的预测模型。
其中,硬件资源利用率的预测模型,请参见图7,包括:
单任务模型,用于计算第二设备集群中每个设备执行单任务时的硬件资源利用率;
概率分布模型,用于根据从第二设备集群的性能预测模型输出的第一设备集群中的设备A在第二阶段的不同轮的平均执行时长和方差以及设备A在第三阶段的不同轮的平均执行时长和方差,构建设备A在第二阶段的不同轮的执行时长的正态分布曲线以及设备B在第三阶段的不同轮的执行时长的正态分布曲线。
平均场模型,用于根据单任务模型及概率分布模型,获得第二设备集群中每个设备执行多任务时的硬件资源利用率。
下面对图7中所示的各个模型的运行原理进行介绍。
在具体实现过程中,预测设备基于资源开销及配置参数,预测第二设备集群中的每个设备的内存利用率、CPU利用率及网络吞吐率;以及
预测设备基于实际执行时长、资源开销及配置参数,预测第二设备集群中的每个设备的磁盘读速率及磁盘写速率。
下面针对上述两种情况分别介绍。在下面的介绍过程中,第二设备集群中的每个设备,以设备B为例,而对其它设备的预测过程同设备B,在此不多赘述。
情况(1),基于资源开销及配置参数,预测第二设备集群中每个设备在不同阶段执行单任务的内存利用率、CPU利用率及网络吞吐率。
在本申请实施例中,MapReduce的运行过程包括不同阶段,也就是第一阶段、第二阶段及第三阶段,下面分别从三个阶段来介绍预测第二设备集群中每个设备在执行单任务时的内存利用率、CPU利用率及网络吞吐率的过程。
第一阶段
(1)、内存利用率:设备B在第一阶段的内存利用率与system_mem、allmem_single、设备B的并发执行map数R以及mapmem相关,也就是根据system_mem、allmem_single、并发执行map数R以及mapmem计算设备B在第一阶段的内存利用率。若将设备B在第一阶段的内存利用率记为N1,则:
(2)、CPU利用率:设备B在第一阶段的CPU利用率与system_cpu、map_cpu以及设备B的并发执行map数R相关,也就是根据system_cpu、map_cpu以及并发执行map数R计算设备B在第一阶段的CPU利用率。若将设备B在第一阶段的CPU利用率记为C1,则:
C1=map_cpu*R+system_cpu (2)
(3)、网络吞吐率:当设备B处理数据量超过1TB时,本地执行率超过99%。因此map任务网络吞吐率近似为0。
第二阶段
(1)、内存利用率:设备B在第二阶段的内存利用率与reduce container所占的物理内存reduce_mem、allmem_sigle、设备B并发开启的reduce container数S以及system_mem相关,也就是根据system_mem、allmem_sigle、并发开启的reduce container数S以及reduce_mem计算设备B在第二阶段的内存利用率。若将设备A在第二阶段的内存利用率记为N2,则:
(2)CPU利用率:设备B在第二阶段的CPU利用率与reduce_cpu、system_cpu、设备B并发执行reduce数T以及merge_cpu_change相关,也就是利用reduce_cpu、system_cpu、并发执行reduce数T以及merge_cpu_change计算设备A在第二阶段的CPU利用率,若将设备A在第二阶段的CPU利用率记为C2,则:
C2=(reduce_cpu+merge_cpu_change)*T+system_cpu (4)
(3)、网络吞吐率:网络吞吐率和同一时刻磁盘读写速率相同,在merge阶段开始时,网络吞吐率会下降,下降的幅度可以根据公式(5)得到,直至shuffle完成,网络吞吐率变为0。其中,网络吞吐率下降与net_down以及设备B并发开启的reduce container数S相关。若将网络吞吐率下降的幅度记为L,则:
L=net_down*S (5)
第三阶段
(1)、内存利用率:设备B在第三阶段的内存利用率与reduce container所占的物理内存reduce_mem、allmem_sigle、设备B并发开启的reduce container数S以及system_mem相关,也就是根据system_mem、allmem_sigle、并发开启的reduce container数S以及reduce_mem计算设备B在第三阶段的内存利用率。若将设备B在第三阶段的内存利用率记为N3,则:
(2)、CPU利用率:设备B在第三阶段的CPU利用率与reduce_cpu、system_cpu以及设备B并发执行reduce数T,也就是利用reduce_cpu、system_cpu、以及并发执行reduce数T计算设备B在第三阶段的CPU利用率。若将设备B在第三阶段的CPU利用率记为C3,则:
C3=reduce_cpu*T+system_cpu (7)
(3)、网络吞吐率:在第三阶段中不存在网络传输。因此,网络吞吐率为0。
在本申请实施例中,利用资源开销、第二设备集群的配置参数以及上述公式(1)-公式(7),则可以计算出设备B在不同阶段执行单任务时的内存利用率、CPU利用率以及网络吞吐率。相应的,根据利用设备B在不同阶段执行单任务时的内存利用率、CPU利用率及网络吞吐率,则可以计算设备B在不同阶段执行多任务时的内存利用率、CPU利用率以及网络吞吐率。
下面以内存利用率为例,介绍根据设备B在不同阶段执行单任务时的内存利用率,计算设备B在不同阶段执行多任务时的内存利用率。对于利用设备B在不同阶段执行单任务时的CPU利用率、网络吞吐率计算设备B在不同阶段执行多任务时的CPU利用率、网络吞吐率的也可以利用如下过程计算,在此不多赘述。
根据上述介绍,设备B在处理数据时,需要执行三个阶段,且每个阶段中分为多轮,包括首轮、中间轮以及尾轮。
在本申请实施例中,以设备B在第一阶段被分配的map任务数是70,设备B并发执行map数是25为例。在具体实现过程中,将设备B在第一阶段的内存利用率乘以25,得到内存利用率和N1*25。然后获取46个内存利用率和,以及获取46个内存利用率和的46个时刻,其中,以0时刻作为初始时刻,该46个时刻中相邻的两个时刻之间的时间间隔为设备B在第一阶段执行单任务时的执行时长。最终,根据46个内存利用率和及对应的46个时刻,得到设备B在第一阶段执行多任务时的内存利用率随时间的变化曲线。
在本申请实施例中,以设备B在第二阶段被分配的任务数是160,设备B通过线程一次获取的任务数是70为例。在具体实现过程中,将设备B在第二阶段的内存利用率乘以70,即N2*70。然后获取91个内存利用率和,以及获取46个内存利用率和的91个时刻,其中,以第一阶段的46个执行时刻中最后一个时刻的下一时刻为初始时刻,该91个时刻中相邻的两个时刻之间的时间间隔为设备B在第二阶段执行单任务时的执行时长。最终,根据91个内存利用率和及对应的91个时刻,得到设备B在第二阶段执行多任务时的内存利用率随时间的变化曲线。
在本申请实施例中,以设备B在第三阶段被分配的reduce任务数是10,设备B并发执行的reduce数是4为例。在具体实现过程中,将设备B在第三阶段的内存利用率乘以4,即N3*4。然后获取7个内存利用率和,以及获取7个内存利用率和的7个时刻,其中,以第二阶段中,该7个时刻中相邻的两个时刻之间的时间间隔为设备B在第三阶段执行单任务时的执行时长。最终,根据7个内存利用率和,以及对应的7个时刻得到设备B在第三阶段执行多任务时的内存利用率随时间的变化曲线。
最终根据设备B在第一阶段的内存利用率随时间的变化曲线、设备B在第二阶段的内存利用率随时间的变化曲线以及设备B在第三阶段的内存利用率随时间变化的曲线得到设备B在整个运行过程中的内存利用率随时间的变化曲线,该曲线的横轴为设备B执行多任务的执行时长、纵轴为设备B执行多任务时的内存利用率,具体请参见图8A。设备B在整个运行过程中的CPU利用率随时间的变化曲线,请参见图8B,设备B在整个运行过程中的网络吞吐率随时间的变化曲线,请参见图8C。
情况(2),基于实际执行时长、资源开销及第二设备集群的配置参数,预测第二设备集群中每个设备在执行单任务的磁盘读速率及磁盘写速率。
下面分别介绍计算设备B在不同阶段执行单任务时的磁盘读速率以及磁盘写速率。
第一阶段
(1)、磁盘读速率:设备B的磁盘读速率与设备B在第一阶段的执行时长T1及单个map任务或container的输入数据量Dm相关,也就是根据T1及Dm,计算设备B在第一阶段的磁盘读速率。若将设备B的磁盘读速率记为Vr1,则:
Vr1=Dm/T1 (8)
(2)、磁盘写速率:设备A的磁盘写速率与设备B在第一阶段的执行时长T1、单个map任务或container的输入数据量Dm以及压缩比例k相关,也就说根据设备A在第一阶段的执行时长T1、一个作业的输入数据量Di以及压缩比例k,计算设备B的磁盘写速率,其中压缩比例k从Hadoop的配置参数获取。若将设备B的磁盘写速率记为Vw1,则:
Vw1=k*Dm/T1 (9)
第二阶段
(1)磁盘读速率:
第二阶段中的磁盘读速率分为多个阶段,其中,shuffle到内存与spill到磁盘阶段的磁盘读速率为:
Vr2s=Dr/T2 (10)
其中,上述公式(10)中的Dr为单个reduce或container的输入数据量,T2为设备B在第二阶段执行单个任务时的执行时长。
在shuffle阶段开始后,在spill到磁盘的文件为start_merge_files个时,开始第一次磁盘merge,merge的文件个数为merge_file_num,文件大小为merge_file_sizes,merge持续时间为merge_time。由于在merge阶段,spill到磁盘的速率会下降,下降速率为spill_down_ratio。所以,在merge阶段的磁盘度速率为:
在merge完成之后,spill到磁盘的速率又回到Vr2s,之后每spill到磁盘的文件达到start_merge_files这个阈值就merge一次,速率为Vr2m。
(2)磁盘写速率
第二阶段中的磁盘写速率分为多个阶段,其中,shuffle到内存与spill到磁盘阶段,spill的数据量为spill_date_sizes,单个reduce或container的输入数据量用Dr表示,则可以计算出需要spill的次数Ms=Dr/spill_data_sizes。5分钟内spill到磁盘的次数为m=(5*60s*Ms)/T2,5分钟spill到磁盘的数据量为D5=spill_data_sizes*m,因此,这5分钟内的磁盘的写速率为:
Vw2s=D5/300s (12)
在shuffle过程开始后,当spill到磁盘的文件为start_merge_files时,开始第一次磁盘merge,merge的文件个数为merge_file_num,文件大小为merge_file_sizes,merge持续时间为merge_time,在merge阶段时,spill到磁盘的速率会下降,下降速率为spill_down_ratio。所以,在merge阶段的磁盘写速率为:
在merge完成之后每spill到磁盘的文件达到start_merge_files这个阈值就merge一次,速率为Vr2m。
第三阶段
(1)、磁盘读速率
在第三阶段磁盘读速率达到最大,根据设备B在第三阶段执行单任务时的执行时长T3以及单个reduce或container的输入数据量Dr,得到设备B在第三阶段执行单任务时的磁盘读速率:
Vr3=Dr/T (14)
(2)、磁盘写速率
在第三阶段磁盘写速率达到最大,根据设备N在第三阶段执行单任务时的执行时长T3以单个reduce或container的输入数据量Dr,即可得到设备B在第三阶段执行单任务时的磁盘写速率:
Vw3=Dr/T (15)
在本申请实施例中,在预测第二设备集群中每个设备在执行单任务的磁盘读速率及磁盘写速率之前,所述方法还包括:
预测设备基于第一平均执行时长和第一方差,获得设备B在第二阶段的首轮的执行时长的正态分布曲线;基于第二平均执行时长和第二方差,获得设备B在第二阶段的中间轮的执行时长的正态分布曲线;基于第三平均执行时长和第三方差,获得设备B在第二阶段的尾轮的执行时长的正态分布曲线;以及基于第四平均执行时长和第四方差,获得设备B在第三阶段的首轮的执行时长的正态分布曲线;基于第五平均执行时长和第五方差,获得设备B在第三阶段的中间轮的执行时长的正态分布曲线;基于第六平均执行时长和第六方差,获得设备B在第三阶段的尾轮的执行时长的正态分布曲线。
在具体实现过程中,由于受到资源竞争、数据分布、Java虚拟机(Java VirtualMachine,JVM)生命周期等因素的影响,同类任务的真实执行时间可能不会完全一致。因此,在本申请实施例中,计算设备B在不同阶段中的第二阶段和第三阶段执行单任务时的磁盘读速率和磁盘写速率时,从获取的不同阶段的不同轮的正态分布曲线上随机抽取概率密度在预设范围内的执行时长,下面分别介绍。
第二阶段
以设备B在第二阶段被分配的任务数M是160,设备B通过线程一次获取的任务数m是70为例。设备B在第二阶段需要执行3轮,也就是在首轮通过线程获取70个任务、在中间轮通过线程获取70个任务,在尾轮通过线程获取20个任务。相应的,从第一正态分布曲线上随机抽取概率密度在第一范围内的第一组70个第一执行时长,从第二正态分布曲线上随机抽取概率密度在第一范围内的第二组70个第一执行时长,从第三正态分布曲线上随机抽取概率密度在第一范围内的20个第一执行时长。
在从正态分布曲线上随机抽取概率密度在第一范围内的160个第一执行时长之后,以从第一正态分布曲线获取第一组70个第一执行时长的时刻为初始时刻,记为t0,在第一组70个第一执行时长中最短的执行时长结束时,从第二组70个第一执行时长中随机抽取一个第一执行时长,与第一组70个执行时长中除执行时长最短外的69个第一执行时长组成一组新的执行时长,并将获取新的一组的第一执行时长的时刻,记为t1,直至从第三正态分布曲线随机抽取的20个第一执行时长被抽取完,共获取61组第一执行时长以及对应的61个时刻,请参见图9A。
在获取61组第一执行时长后,根据61组第一执行时长、资源开销、Hadoop配置参数、第二设备集群的配置参数以及上述公式时长带入公式(10)-公式(12),便可以计算出设备B在第二阶段执行单任务时的磁盘读速率及磁盘写速率。
在获取设备B在第二阶段执行单任务时的磁盘读速率及磁盘写速率后,则根据设备B在第二阶段执行单任务时的磁盘读速率及磁盘写速率计算设备B在第二阶段执行多任务时的磁盘读速率和磁盘写速率。
在具体实现过程中,将与61个时刻对应的61组磁盘读速率中的每组磁盘读速率进行求和,获得61个磁盘读速率和。进而根据61个磁盘读速率和以及对应的61个时刻,获得设备B在第二阶段执行多任务时的磁盘读速率随时间的变化曲线。以及将与61个时刻对应的61组磁盘写速率中的每组磁盘写速率进行求和,获得61个磁盘写速率和。进而根据61个磁盘写速率和以及对应的61个时刻,获得设备B在第二阶段执行多任务时的磁盘写速率随时间的变化曲线。
第三阶段
在本申请实施例中,以设备B在第三阶段被分配的reduce任务数N是10,设备B并发执行的reduce数n是4为例。设备B在第三阶段需要执行3轮,也就是在首轮执行4个reduce任务、在中间轮执行4个reduce任务、在尾轮执行2个reduce任务。相应的,从第四正态分布曲线上随机抽取概率密度在第二范围内的第一组4个第二执行时长,从第五正态分布曲线上随机抽取概率密度在第二范围的第二组4个第二执行时长,从第六正态分布曲线上随机抽取概率密度在第二范围内的2个第二执行时长。
从正态分布曲线上随机抽取概率密度在第二范围内的10第二执行时长之后,以从第四正态分布曲线获取第一组4个第二执行时长的时刻为初始时刻,记为t0,在第一组4个第二执行时长中最短的执行时长结束时,从第二组4个第二执行时长中随机抽取一个第二执行时长,与第一组4个第二执行时长中除执行时长最短外的3个第二执行时长组成一组新的执行时长,并将获取新的一组的第一执行时长的时刻记为t1,直至从第三正态分布曲线随机抽取的2个第二执行时长被抽取完,共获取7组第二执行时长以及对应的7个时刻,请参见图9B。
在获取61组第一执行时长后,根据61组第一执行时长、资源开销、Hadoop配置参数、第二设备集群的配置参数以及上述公式时长带入公式(10)-公式(12),便可以计算出设备B在第二阶段执行单任务时的磁盘读速率及磁盘写速率。
在获取设备B在第二阶段执行单任务时的磁盘读速率及磁盘写速率后,则根据设备B在第二阶段执行单任务时的磁盘读速率及磁盘写速率计算设备B在第二阶段执行多任务时的磁盘读速率和磁盘写速率。
在具体实现过程中,将与7个时刻对应的7组磁盘读速率中的每组磁盘读速率进行求和,获得7个磁盘读速率和。进而根据7个磁盘读速率和以及对应的7个时刻,获得设备B在第三阶段执行多任务时的磁盘读速率随时间的变化曲线。以及将与7个时刻对应的7组磁盘写速率中的每组磁盘写速率进行求和,获得7个磁盘写速率和。进而根据7个磁盘写速率和以及对应的7个时刻,获得设备B在第二阶段执行多任务时的磁盘写速率随时间的变化曲线。
第一阶段
在本申请实施例中,以设备B在第一阶段被分配的map任务数P是70,设备B并发执行的map数p是25为例。在具体实现过程中,将设备B在第一阶段的磁盘写速率乘以p,共获得46个磁盘写速率和,进而根据46个磁盘写速率和获得设备B在第一阶段执行多任务时的磁盘读速率随时间的变化曲线。其中,46个磁盘写速率和之间的时间间隔为设备B在第一阶段执行单任务时的执行时长。
在本申请实施例中,上述根据设备B执行单任务时的磁盘读速率和磁盘写速率,获得设备B执行多任务时的磁盘读速率和磁盘写速率的过程就是平均场模型的运行过程。
根据设备B在第一阶段、第二阶段及第三阶段执行多任务时磁盘读速率随时间变化的曲线,获取设备B在整个运行过程中执行多任务时磁盘读速率随时间变化的曲线,请参见图10A。根据设备B在第一阶段、第二阶段及第三阶段执行多任务时磁盘写速率随时间变化的曲线,获取设备B在整个运行过程中执行多任务时磁盘写速率随时间变化的曲线,请参见图10B。
在本申请实施例中,将设备B在不同阶段的不同轮对应的正态分布曲线上的随机取值作为用于计算设备B执行单任务时的输入,然后将获取的结果按照同一时间轴叠加,避免了使用平均值带来的误差,将不同任务之间的差异性体现出来,提高预测第二设备集群的硬件资源利用率的精准度。
请参见图11,本申请实施例提供一种预测设备集群的硬件资源利用率的装置,该装置包括连接到同一总线1100的处理器1101、存储器1102。
其中,处理器1101可以是中央处理器,或特定应用集成电路(ApplicationSpecific Integrated Circuit,ASIC),可以是一个或多个用于控制程序执行的集成电路,可以是基带芯片,等等。
存储器1102的数量可以是一个或多个,存储器可以是只读存储器(Read onlyMemory,ROM)、随机存储存储器(Random Access Memory,RAM)或磁盘存储器,等等。
通过对处理器1101进行设计编程,将前述的预测设备集群硬件资源利用率的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述图2所示的实施例提供的预测设备集群的硬件资源利用率的方法,如何对处理器1101进行设计编程为本领域技术人员公知的技术,这里不再赘述。
请参见图12,本申请实施例提供一种预测设备集群的硬件资源利用率的装置,该装置包括获取模块1201、第一预测模块1202、及第二预测模块1203。
在实际应用中,第一预测模块1202、第二预测模块1203对应的实体装置可以集成在图11中的处理器1101中。
本申请实施例中的预测设备集群的硬件资源利用率的装置可以用于执行上述图2所示的实施例提供的方法,对于该预测设备集群的硬件资源利用率的装置中的各模块所实现的功能等,可参考如前方法部分的描述,在此不多赘述。
本申请实施例还提供了一种计算机可读存储介质,用于存储为执行上述处理器所需执行的计算机软件指令,其包含用于执行上述处理器所需执行的程序。
在上述申请实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘Solid State Disk(SSD))等。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (20)
1.一种预测设备集群的硬件资源利用率的方法,其特征在于,包括:
预测设备获取第一设备集群的性能特征库,所述性能特征库包括所述第一设备集群包括的一个设备处理数据的不同阶段中,每个阶段的不同轮包含不同任务数量时所需的执行时长,以及所述设备在空闲态和运行任意一个任务时的资源开销;
所述预测设备基于所述执行时长,预测第二设备集群中每个设备在处理数据过程中执行不同阶段分别被分配到的任务时所需的实际执行时长;
所述预测设备基于所述实际执行时长、所述资源开销及所述第二设备集群的配置参数,预测所述第二设备集群的硬件资源利用率;
其中,所述第二设备集群为基于所述第一设备集群扩容得到的虚拟仿真集群。
2.根据权利要求1所述的方法,其特征在于,所述不同阶段包括:
设备执行数据映射操作的第一阶段;
设备执行数据洗牌操作和合并操作的第二阶段;
设备执行数据化简操作的第三阶段。
3.根据权利要求2所述的方法,其特征在于,所述预测设备基于所述实际执行时长、所述资源开销及所述第二设备集群的配置参数,预测所述第二设备集群的硬件资源利用率,包括:
所述预测设备基于所述资源开销及所述配置参数,预测第二设备集群中的每个设备的内存利用率、CPU利用率及网络吞吐率;及
所述预测设备基于所述实际执行时长、所述资源开销及所述配置参数,预测第二设备集群中的每个设备的磁盘读速率及磁盘写速率。
4.根据权利要求3所述的方法,其特征在于,所述预测设备基于所述实际执行时长、所述资源开销及所述配置参数,预测所述每个设备的磁盘读速率及磁盘写速率,包括:
所述预测设备基于所述实际执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述不同阶段执行单任务时的磁盘读速率及磁盘写速率;
所述预测设备基于预测的所述每个设备在所述不同阶段执行单任务时的磁盘读速率及磁盘写速率,预测所述每个设备在所述不同阶段执行多任务时的磁盘读写速率及磁盘写速率。
5.根据权利要求4所述的方法,其特征在于,所述不同轮包括:
设备在所述不同阶段被分配的任务的任务数量大于所述设备在所述不同阶段能够处理的最大任务数量时,所述设备按照时间顺序处理所述任务的得到的首轮、中间轮及尾轮。
6.根据权利要求5所述的方法,其特征在于,所述实际执行时长包括:
所述每个设备在所述第一阶段的首轮的执行时长;
所述每个设备在所述第二阶段的首轮执行被分配到的任务时的第一平均执行时长和第一方差、在所述第二阶段的中间轮执行被分配到的任务时的第二平均执行时长和第二方差及在所述所述第三阶段的尾轮执行被分配到的任务时的第三平均执行时长和第三方差;以及,
所述每个设备在所述第三阶段的首轮执行被分配到的任务时的第四平均执行时长和第四方差、在所述第三阶段的中间轮执行被分配到的任务时的第五平均执行时长和第五方差及在所述第三阶段的尾轮执行被分配到的任务时的第六平均执行时长和第六方差。
7.根据权利要求6所述的方法,其特征在于,在所述预测设备基于所述实际执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述不同阶段执行单任务时的磁盘读速率及磁盘写速率之前,所述方法还包括:
所述预测设备基于所述第一平均执行时长和所述第一方差,获得第一正态分布曲线;
所述预测设备基于所述第二平均执行时长和所述第二方差,获得第二正态分布曲线;
所述预测设备基于所述第三平均执行时长和所述第三方差,获得第三正态分布曲线;
所述预测设备基于所述第四平均执行时长和所述第四方差,获得第四正态分布曲线;
所述预测设备基于所述第五平均执行时长和所述第五方差,获得第五正态分布曲线;
所述预测设备基于所述第六平均执行时长和所述第六方差,获得第六正态分布曲线;
其中,所述第一正态分布曲线、所述第二正态分布曲线及所述第三正态分布曲线分别是以所述每个设备在所述第二阶段的不同轮执行单任务时的第一执行时长为横轴,以所述第一执行时长的概率密度为纵轴的曲线,所述第四正态分布曲线、所述第五正态分布曲线及所述第六正态分布曲线分别是以所述每个设备在所述第三阶段的不同轮执行单任务时的第二执行时长为横轴,所述第二执行时长的概率密度为纵轴的曲线;
所述预测设备基于所述实际执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述不同阶段执行单任务时的磁盘读速率及磁盘写速率,包括:
所述预测设备从所述第一正态分布曲线上获取概率密度在第一范围内的第一组m个第一执行时长,从所述第二正态分布曲线上获取概率密度在所述第一范围内的第二组m个第一执行时长,从所述第三正态分布曲线上获取概率密度在所述第一范围内的M-2m个第一执行时长,共获得M个第一执行时长,以及从所述第四正态分布曲线上获取概率密度在第二范围内的第一组n个第二执行时长,从所述第五正态分布曲线上获取概率密度在所述第二范围内的第一组n个第二执行时长,从所述第六正态分布曲线上获取概率密度在所述第二范围的N-2n个第二执行时长,共获得N个第二执行时长,其中,M为所述每个设备在所述第二阶段被分配到的任务数量,N为所述每个设备在所述第三阶段被分配到的任务数量,m为所述每个设备在所述第二阶段能够处理的任务的最大任务数量,n为所述每个设备在所述第三阶段能够处理的任务的最大任务数量;
所述预测设备基于所述M个第一执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述第二阶段执行单任务时的磁盘读速率及磁盘写速率;
所述预测设备基于所述N个第二执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述第三阶段执行单任务时的磁盘读速率及磁盘写速率;以及
所述预测设备基于所述每个设备在所述第一阶段的执行时长,预测所述每个设备在所述第一阶段执行所述单任务时的磁盘读速率及磁盘写速率。
8.根据权利要求7所述的方法,其特征在于,所述预测设备基于所述M个第一执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述第二阶段执行单任务时的磁盘读速率及磁盘写速率,包括:
所述预测设备在获取所述第一组m个第一执行时长的第一预设时长之后,从所述第二组m个执行时长中随机抽取一个第一执行时长,与所述第一组m个第一执行时长中除所述第一预设时长外的m-1个第一执行时长构成一组第一执行时长,在所述M-2m个第一执行时长被抽取完时,共获得M-m+1组第一执行时长;其中,所述第一预设时长为所述M-m+1组第一执行时长中每一组的m个第一执行时长中执行时长最短的时长;
所述预测设备基于所述M-m+1组第一执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述第二阶段执行所述单任务时的M-m+1组磁盘读速率及M-m+1组磁盘写速率;
所述预测设备基于所述N个第二执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述第三阶段执行所述单任务时的磁盘读速率及磁盘写速率,包括:
所述预测设备在获取所述第一组n个第二执行时长的第二预设时长之后,从所述第二组n个第二执行时长中随机抽取一个第二执行时长,与所述第一组n个第二执行时长中除所述第二预设时长外的n-1个第二执行时长构成一组第二执行时长,在所述第三组N-2n个第二执行时长被抽取完时,共获得N-n+1组第二执行时长;其中,所述第二预设时长为所述N-n+1组第二执行时长中每一组的n个第二执行时长中执行时长最短的时长;
所述预测设备基于所述N-n+1组执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述第三阶段执行所述单任务时的N-n+1组磁盘读速率及N-n+1组磁盘写速率。
9.根据权利要求8所述的方法,其特征在于,所述预测设备基于预测的所述每个设备在所述不同阶段执行单任务时的盘读速率及磁盘写速率,预测所述第二设备集群在所述不同阶段执行多任务时的磁盘读写速率和磁盘写速率,包括:
在所述第一阶段,所述预测设备将所述每个设备在所述第一阶段执行所述单任务时的磁盘读速率乘以p,获得P-p+1个磁盘读速率和,将磁盘写速率乘以p,获得P-p+1个磁盘写速率和,P为所述每个设备在所述第一阶段被分配到的任务数量,p为所述每个设备在所述第一阶段能够处理的最大任务数量;
在所述第二阶段,所述预测设备对所述M-m+1组磁盘读速率中每一组的磁盘读速率求和,获得M-m+1个磁盘读速率和,对所述M-m+1组磁盘写速率中每一组的磁盘写速率进行求和,获得M-m+1个磁盘写速率和,以及获取所述M-m+1组第一执行时长中每一组执行时长的时间;
在所述第三阶段,所述预测设备对所述N-n+1组磁盘读速率中每一组的磁盘读速率求和,获得N-n+1个磁盘读速率,对所述N-n+1组磁盘写速率中每一组的磁盘写速率求和,获得N-n+1个磁盘写速率,以及获取所述N-n+1组第二执行时长中每一组执行时长的时间。
10.一种预测设备集群的硬件资源利用率的装置,其特征在于,包括存储器和处理器,其中:
存储器,存储有计算机程序和第一设备集群的性能特征库,所述性能特征库包括所述第一设备集群包括的一个设备处理数据的不同阶段中,每个阶段的不同轮包含不同任务数量时所需的执行时长,以及所述设备在空闲态和运行任意一个任务时的资源开销;
处理器,用于调用所述存储器中存储的计算机程序和所述所述性能特征库,执行:基于所述执行时长,预测第二设备集群中每个设备在处理数据过程中执行不同阶段分别被分配到的任务时所需的实际执行时长;以及基于所述实际执行时长、所述资源开销及所述第二设备集群的配置参数,预测所述第二设备集群的硬件资源利用率;其中,所述第二设备集群为基于所述第一设备集群扩容得到的虚拟仿真集群。
11.根据权利要求10所述的装置,其特征在于,所述不同阶段包括:
设备执行数据映射操作的第一阶段;
设备执行数据洗牌操作和合并操作的第二阶段;
设备执行数据化简操作的第三阶段。
12.根据权利要求11所述的装置,其特征在于,在所述处理器基于所述实际执行时长、所述资源开销及所述第二设备集群的配置参数,预测所述第二设备集群的硬件资源利用率时,具体用于:
基于所述资源开销及所述配置参数,预测第二设备集群中的每个设备的内存利用率、CPU利用率及网络吞吐率;及
基于所述实际执行时长、所述资源开销及所述配置参数,预测第二设备集群中的每个设备的磁盘读速率及磁盘写速率。
13.根据权利要求12所述的装置,其特征在于,在所述处理器基于所述实际执行时长、所述资源开销及所述配置参数,预测所述每个设备的磁盘读速率及磁盘写速率时,具体用于:
基于所述实际执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述不同阶段执行单任务时的磁盘读速率及磁盘写速率;
基于预测的所述每个设备在所述不同阶段执行单任务时的磁盘读速率及磁盘写速率,预测所述每个设备在所述不同阶段执行多任务时的磁盘读写速率及磁盘写速率。
14.根据权利要求13所述的装置,其特征在于,所述不同轮包括:
设备在所述不同阶段被分配的任务的任务数量大于所述设备在所述不同阶段能够处理的最大任务数量时,所述设备按照时间顺序处理所述任务的得到的首轮、中间轮及尾轮。
15.根据权利要求14所述的装置,其特征在于,所述实际执行时长包括:
所述每个设备在所述第一阶段的首轮的执行时长;
所述每个设备在所述第二阶段的首轮执行被分配到的任务时的第一平均执行时长和第一方差、在所述第二阶段的中间轮执行被分配到的任务时的第二平均执行时长和第二方差及在所述所述第三阶段的尾轮执行被分配到的任务时的第三平均执行时长和第三方差;以及,
所述每个设备在所述第三阶段的首轮执行被分配到的任务时的第四平均执行时长和第四方差、在所述第三阶段的中间轮执行被分配到的任务时的第五平均执行时长和第五方差及在所述第三阶段的尾轮执行被分配到的任务时的第六平均执行时长和第六方差。
16.根据权利要求15所述的装置,其特征在于,在所述处理器基于所述实际执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述不同阶段执行单任务时的磁盘读速率及磁盘写速率之前,还包括:
基于所述第一平均执行时长和所述第一方差,获得第一正态分布曲线;
基于所述第二平均执行时长和所述第二方差,获得第二正态分布曲线;
基于所述第三平均执行时长和所述第三方差,获得第三正态分布曲线;
基于所述第四平均执行时长和所述第四方差,获得第四正态分布曲线;
基于所述第五平均执行时长和所述第五方差,获得第五正态分布曲线;
基于所述第六平均执行时长和所述第六方差,获得第六正态分布曲线;
其中,所述第一正态分布曲线、所述第二正态分布曲线及所述第三正态分布曲线分别是以所述每个设备在所述第二阶段的不同轮执行单任务时的第一执行时长为横轴,以所述第一执行时长的概率密度为纵轴的曲线,所述第四正态分布曲线、所述第五正态分布曲线及所述第六正态分布曲线分别是以所述每个设备在所述第三阶段的不同轮执行单任务时的第二执行时长为横轴,所述第二执行时长的概率密度为纵轴的曲线;
在所述处理器基于所述实际执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述不同阶段执行单任务时的磁盘读速率及磁盘写速率时,具体用于:
从所述第一正态分布曲线上获取概率密度在第一范围内的第一组m个第一执行时长,从所述第二正态分布曲线上获取概率密度在所述第一范围内的第二组m个第一执行时长,从所述第三正态分布曲线上获取概率密度在所述第一范围内的M-2m个第一执行时长,共获得M个第一执行时长,以及从所述第四正态分布曲线上获取概率密度在第二范围内的第一组n个第二执行时长,从所述第五正态分布曲线上获取概率密度在所述第二范围内的第一组n个第二执行时长,从所述第六正态分布曲线上获取概率密度在所述第二范围的N-2n个第二执行时长,共获得N个第二执行时长,其中,M为所述每个设备在所述第二阶段被分配到的任务数量,N为所述每个设备在所述第三阶段被分配到的任务数量,m为所述每个设备在所述第二阶段能够处理的任务的最大任务数量,n为所述每个设备在所述第三阶段能够处理的任务的最大任务数量;
基于所述M个第一执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述第二阶段执行单任务时的磁盘读速率及磁盘写速率;
基于所述N个第二执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述第三阶段执行单任务时的磁盘读速率及磁盘写速率;以及
基于所述每个设备在所述第一阶段的执行时长,预测所述每个设备在所述第一阶段执行所述单任务时的磁盘读速率及磁盘写速率。
17.根据权利要求16所述的装置,其特征在于,在所述处理器基于所述M个第一执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述第二阶段执行单任务时的磁盘读速率及磁盘写速率时,具体用于:
在获取所述第一组m个第一执行时长的第一预设时长之后,从所述第二组m个执行时长中随机抽取一个第一执行时长,与所述第一组m个第一执行时长中除所述第一预设时长外的m-1个第一执行时长构成一组第一执行时长,在所述M-2m个第一执行时长被抽取完时,共获得M-m+1组第一执行时长;其中,所述第一预设时长为所述M-m+1组第一执行时长中每一组的m个第一执行时长中执行时长最短的时长;
基于所述M-m+1组第一执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述第二阶段执行所述单任务时的M-m+1组磁盘读速率及M-m+1组磁盘写速率;
基于所述N个第二执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述第三阶段执行所述单任务时的磁盘读速率及磁盘写速率,包括:
在获取所述第一组n个第二执行时长的第二预设时长之后,从所述第二组n个第二执行时长中随机抽取一个第二执行时长,与所述第一组n个第二执行时长中除所述第二预设时长外的n-1个第二执行时长构成一组第二执行时长,在所述第三组N-2n个第二执行时长被抽取完时,共获得N-n+1组第二执行时长;其中,所述第二预设时长为所述N-n+1组第二执行时长中每一组的n个第二执行时长中执行时长最短的时长;
基于所述N-n+1组执行时长、所述资源开销及所述配置参数,预测所述每个设备在所述第三阶段执行所述单任务时的N-n+1组磁盘读速率及N-n+1组磁盘写速率。
18.根据权利要求17所述的装置,其特征在于,所述处理器基于预测的所述每个设备在所述不同阶段执行单任务时的盘读速率及磁盘写速率,预测所述第二设备集群在所述不同阶段执行多任务时的磁盘读写速率和磁盘写速率时,具体用于:
在所述第一阶段,将所述每个设备在所述第一阶段执行所述单任务时的磁盘读速率乘以p,获得P-p+1个磁盘读速率和,将磁盘写速率乘以p,获得P-p+1个磁盘写速率和,P为所述每个设备在所述第一阶段被分配到的任务数量,p为所述每个设备在所述第一阶段能够处理的最大任务数量;
在所述第二阶段,对所述M-m+1组磁盘读速率中每一组的磁盘读速率求和,获得M-m+1个磁盘读速率和,对所述M-m+1组磁盘写速率中每一组的磁盘写速率进行求和,获得M-m+1个磁盘写速率和,以及获取所述M-m+1组第一执行时长中每一组执行时长的时间;
在所述第三阶段,对所述N-n+1组磁盘读速率中每一组的磁盘读速率求和,获得N-n+1个磁盘读速率,对所述N-n+1组磁盘写速率中每一组的磁盘写速率求和,获得N-n+1个磁盘写速率,以及获取所述N-n+1组第二执行时长中每一组执行时长的时间。
19.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1-9任一权利要求所述的方法。
20.一种计算机程序产品,其特征在于,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1-9任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710571243.4A CN107562532B (zh) | 2017-07-13 | 2017-07-13 | 一种预测设备集群的硬件资源利用率的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710571243.4A CN107562532B (zh) | 2017-07-13 | 2017-07-13 | 一种预测设备集群的硬件资源利用率的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107562532A true CN107562532A (zh) | 2018-01-09 |
CN107562532B CN107562532B (zh) | 2020-11-27 |
Family
ID=60972641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710571243.4A Active CN107562532B (zh) | 2017-07-13 | 2017-07-13 | 一种预测设备集群的硬件资源利用率的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107562532B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109710499A (zh) * | 2018-11-13 | 2019-05-03 | 平安科技(深圳)有限公司 | 计算机设备性能识别方法和装置 |
CN110489301A (zh) * | 2019-08-22 | 2019-11-22 | 上海中通吉网络技术有限公司 | mapreduce任务性能的分析方法、装置及设备 |
CN113342515A (zh) * | 2021-05-11 | 2021-09-03 | 北京大学 | 一种无服务器计算资源选择方法、装置、设备及存储介质 |
CN113672489A (zh) * | 2021-10-25 | 2021-11-19 | 国家超级计算天津中心 | 超级计算机的资源性能等级确定方法及设备 |
CN115017002A (zh) * | 2021-12-22 | 2022-09-06 | 荣耀终端有限公司 | 频率预测方法和频率预测装置 |
CN115080253A (zh) * | 2022-08-23 | 2022-09-20 | 小米汽车科技有限公司 | Gpu任务的分配方法、装置、电子设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117225A (zh) * | 2009-12-31 | 2011-07-06 | 上海可鲁系统软件有限公司 | 一种工业自动化多点集群系统及其任务管理方法 |
CN102624865A (zh) * | 2012-01-09 | 2012-08-01 | 浙江大学 | 集群负载预测方法及分布式集群管理系统 |
US8266289B2 (en) * | 2009-04-23 | 2012-09-11 | Microsoft Corporation | Concurrent data processing in a distributed system |
CN103399797A (zh) * | 2013-07-19 | 2013-11-20 | 华为技术有限公司 | 服务器资源配置方法及装置 |
US20140068055A1 (en) * | 2012-09-06 | 2014-03-06 | Enrico Iori | Resource sharing in computer clusters according to objectives |
CN105718364A (zh) * | 2016-01-15 | 2016-06-29 | 西安交通大学 | 一种云计算平台中计算资源能力动态评估方法 |
CN106155822A (zh) * | 2015-03-25 | 2016-11-23 | 华为技术有限公司 | 一种处理能力评估方法及装置 |
CN106383746A (zh) * | 2016-08-30 | 2017-02-08 | 北京航空航天大学 | 大数据处理系统的配置参数确定方法和装置 |
-
2017
- 2017-07-13 CN CN201710571243.4A patent/CN107562532B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8266289B2 (en) * | 2009-04-23 | 2012-09-11 | Microsoft Corporation | Concurrent data processing in a distributed system |
CN102117225A (zh) * | 2009-12-31 | 2011-07-06 | 上海可鲁系统软件有限公司 | 一种工业自动化多点集群系统及其任务管理方法 |
CN102624865A (zh) * | 2012-01-09 | 2012-08-01 | 浙江大学 | 集群负载预测方法及分布式集群管理系统 |
US20140068055A1 (en) * | 2012-09-06 | 2014-03-06 | Enrico Iori | Resource sharing in computer clusters according to objectives |
CN103399797A (zh) * | 2013-07-19 | 2013-11-20 | 华为技术有限公司 | 服务器资源配置方法及装置 |
CN106155822A (zh) * | 2015-03-25 | 2016-11-23 | 华为技术有限公司 | 一种处理能力评估方法及装置 |
CN105718364A (zh) * | 2016-01-15 | 2016-06-29 | 西安交通大学 | 一种云计算平台中计算资源能力动态评估方法 |
CN106383746A (zh) * | 2016-08-30 | 2017-02-08 | 北京航空航天大学 | 大数据处理系统的配置参数确定方法和装置 |
Non-Patent Citations (1)
Title |
---|
李佳宣: "基于马尔可夫过程的Hadoop集群性能优化与平均寿命的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109710499A (zh) * | 2018-11-13 | 2019-05-03 | 平安科技(深圳)有限公司 | 计算机设备性能识别方法和装置 |
CN109710499B (zh) * | 2018-11-13 | 2023-01-17 | 平安科技(深圳)有限公司 | 计算机设备性能识别方法和装置 |
CN110489301A (zh) * | 2019-08-22 | 2019-11-22 | 上海中通吉网络技术有限公司 | mapreduce任务性能的分析方法、装置及设备 |
CN110489301B (zh) * | 2019-08-22 | 2023-03-10 | 上海中通吉网络技术有限公司 | mapreduce任务性能的分析方法、装置及设备 |
CN113342515A (zh) * | 2021-05-11 | 2021-09-03 | 北京大学 | 一种无服务器计算资源选择方法、装置、设备及存储介质 |
CN113672489A (zh) * | 2021-10-25 | 2021-11-19 | 国家超级计算天津中心 | 超级计算机的资源性能等级确定方法及设备 |
CN115017002A (zh) * | 2021-12-22 | 2022-09-06 | 荣耀终端有限公司 | 频率预测方法和频率预测装置 |
CN115017002B (zh) * | 2021-12-22 | 2023-04-18 | 荣耀终端有限公司 | 频率预测方法和频率预测装置 |
CN115080253A (zh) * | 2022-08-23 | 2022-09-20 | 小米汽车科技有限公司 | Gpu任务的分配方法、装置、电子设备和存储介质 |
CN115080253B (zh) * | 2022-08-23 | 2022-11-22 | 小米汽车科技有限公司 | Gpu任务的分配方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107562532B (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107562532A (zh) | 一种预测设备集群的硬件资源利用率的方法及装置 | |
WO2022037337A1 (zh) | 机器学习模型的分布式训练方法、装置以及计算机设备 | |
US20210374610A1 (en) | Efficient duplicate detection for machine learning data sets | |
US20200050968A1 (en) | Interactive interfaces for machine learning model evaluations | |
Han et al. | Benchmarking big data systems: A review | |
US20190122136A1 (en) | Feature processing tradeoff management | |
US11182691B1 (en) | Category-based sampling of machine learning data | |
US10339465B2 (en) | Optimized decision tree based models | |
US10318882B2 (en) | Optimized training of linear machine learning models | |
CA2953959C (en) | Feature processing recipes for machine learning | |
US11100420B2 (en) | Input processing for machine learning | |
US20150379428A1 (en) | Concurrent binning of machine learning data | |
US8768878B2 (en) | Characterizing business intelligence workloads | |
CN103019855A (zh) | MapReduce作业执行时间预测方法 | |
CN107493205A (zh) | 一种设备集群扩容性能预测方法及装置 | |
Kounev et al. | Qpme 2.0-a tool for stochastic modeling and analysis using queueing petri nets | |
CN108256694A (zh) | 基于重复遗传算法的模糊时间序列预测系统、方法及装置 | |
Bhatnagar | Data mining-based big data analytics: parameters and layered framework | |
Baughman et al. | Measuring, quantifying, and predicting the cost-accuracy tradeoff | |
Iserte | An study on the resource utilization and user behavior on titan supercomputer | |
US20220383183A1 (en) | Machine learning pipeline optimization | |
Rosinosky et al. | StreamBed: capacity planning for stream processing | |
US20230136564A1 (en) | Agent assisted model development | |
US20230161575A1 (en) | Transformation of a loop within computer code to minimize iterations | |
Win et al. | Comparative Study of Big Data Predictive Analytics Frameworks |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |