1.基于动态电压频率调整的双层Spark节能调度方法,其特征在于,包括:第一层,针对不同应用程序对CPU以及I/O需求的不同,通过观察不同应用的资源使用特性,对应用类别数预先进行整体的判断,并对应用程序进行一个整体的降频处理;第二层,根据Spark在应用程序运行过程中同一个阶段不同任务的完成时间不同的固有特性,对具体节点进行降频处理,具体步骤如下:S1、在Spark环境下对应用程序进行初始化运行,通过资源监控器获取CPU运行频率、CPU使用率、应用程序运行时间关键信息;
S2、根据不同应用程序的资源使用特性,对应用程序进行聚类,并通过能耗模型计算出应用程序在单位之间内的能耗,并选取最优的频率作为最终目标,具体包括:S21、选取圆周率计算函数PI、排序计算Sort、正则表达式搜索Grep作为初始聚类中心;
S22、选取CPU利用率和I/O利用率作为特征值,则将默认频率f下在二维坐标系某个应用程序APP描述为:APP=(Uf,IOf);
S23、应用程序之间的差异度定义为两点之间的欧式距离D,表示为:S24、对目标应用程序进行初始化测试,获取其在默认频率下的CPU利用率和I/O利用率;
S25、为目标应用程序寻找最相似特征应用程序,根据其能效最优频率对目标应用程序进行频率调整;
S26、对范围内频率进行测试,通过能耗模型对范围内频率进行运算,以范围内频率的最优解作为最优频率,即耗能最低的解为最优解;
其中,Uf表示频率f下的CPU利用率,Un表示频率f下的CPU利用率;APP=(Uf,IOf)表示一个APP应用程序,IOf表示频率n下的I/O利用率,IOn表示频率n下的I/O利用率;
S3、通过应用程序初始化运行时得到的状态信息,根据不同应用程序的异构性,构建应用程度在不同节点上运行时的状态矩阵,即主机状态矩阵;
S4、通过状态矩阵,根据完成时间对同一个阶段中的任务进行排序,对完成时间较快的节点,利用CPU频率控制模块对CPU频率进行调整。
2.根据权利要求1所述的基于动态电压频率调整的双层Spark节能调度方法,其特征在于,步骤S1具体包括以下步骤:S11、通过linux下的shell脚本,对应用程序在Spark的运行过程构建一个实时监控模块,Spark应用程序分为计算密集型、I/O密集型或混合性;
S12、在默认CPU频率的环境下,对目标应用程序进行初始化运行,在运行过程中的CPU利用率、CPU频率、每个任务所分布的节点和完成时间进行监控。
3.根据权利要求1所述的基于动态电压频率调整的双层Spark节能调度方法,其特征在于,通过能耗模型计算出应用程序在单位之间内的能耗,表示为:其中,F为CPU默认最大运行频率,f为CPU当前运行频率,Uf0表示CPU当前运行频率f下无负载时的使用率,Uf表示CPU当前运行频率f下有负载时的使用率。
4.根据权利要求1所述的基于动态电压频率调整的双层Spark节能调度方法,其特征在于,步骤S3具体包括:S31、设置参与计算的executor输入待分配的阶段集合;
S32、收集应用程序任务分部的各个节点的运行状态;
S33、对各个节点的运行状态进行处理,并根据各个节点的运行状态创建主机状态矩阵。
5.根据权利要求1所述的基于动态电压频率调整的双层Spark节能调度方法,其特征在于,主机状态矩阵表示为:其中,stage表示主机的状态, 表示任务在节点n上的状态向量,Un表示节点n上的CPU的平均利用率,fn表示节点n上的CPU频率,tn表示任务在节点n上的任务完成时间。
6.根据权利要求1所述的基于动态电压频率调整的双层Spark节能调度方法,其特征在于,利用节点频率控制模块对各节点的频率进行调整包括以下步骤:S41、读取主机状态矩阵并计算每个节点的最优频率;
S42、调整各个节点的动态变频CpuFreq工作模式为用户定义模式;
S43、根据主机状态矩阵设置具体节点的最优频率;
S44、通过监控模块获取节点的CPU利用率、内存利用率和CPU频率等信息,用于更新状态矩阵;
S45、利用能耗评估模型,计算当前阶段的总能耗。