Page 278 - 《软件学报》2021年第8期
P. 278
2560 Journal of Software 软件学报 Vol.32, No.8, August 2021
文献[7]提出一种流式大数据处理环境下的实时资源调度节能策略(re-stream),该策略通过构建 CPU 利用
率、响应时间以及能耗间的数学关系,以此获得了满足高能效与低响应时间的条件,从而实现了节能的目的.然
而,该节能策略仍存在以下两点值得讨论:(1) 该策略仅考虑集群 CPU 的能耗问题,但对于集群其他电子元件的
能耗并未做叙述;(2) 该策略仅使用自己定义的拓扑,并非公认的测试数据集.此外,除了集群自身算法,并未作其
他对比实验,因此节能策略缺乏一定的通用性.
文献[36]针对 Storm 在遭遇资源瓶颈与网络报错时,缺乏合理应对手段,提出了基于数据恢复的节能策略.
该策略通过监控集群拓扑内任务的执行吞吐量,判断任务的实际运行情况,确定是否终止集群内的任务,并根据
数据恢复模型还原集群内的数据.该策略不仅有效降低了集群因资源瓶颈与网络报错而带来的额外资源与能
耗的开销,而且提高了集群任务处理的性能.此外,该策略具有两个明显的优点:(1) 从内存重新恢复读取数据,有
效地避免了从磁盘读取数据资源与能耗的峰值问题;(2) 该策略可以与其他节能策略进行融合,达到双重节能
的效果.但也存在集群未发生资源瓶颈与网络报错,导致节能策略失效的问题.
文献[37]根据 Storm 平台在进行数据处理时存在高能耗的问题,提出了工作节点内存电压调控节能策略
(energy-efficient strategy for work node by DRAM voltage regulation in Storm,简称 WNDVR-Storm).该策略通过
对集群内的数据流设置阈值,从而对集群工作节点数据处理能力进行判别,动态调节工作节点的内存电压,以达
到节能的目的.该节能策略不仅有效降低了集群的能耗,而且在一定程度上对集群的负载均衡进行了优化,但是
还存在以下两点不足:(1) 动态调节工作节点的内存电压存在一定的偶然性,且实现难度较高;(2) 若集群规模
较大且工作节点过多,存在节能算法失效的可能.
与已有成果相比,本文的不同之处在于.
(1) 文献[8,31−35]均是从集群整体的特性进行分析,并未细化各部件对集群的影响,如网络带宽、CPU 等
部件对集群的影响.本文从网络带宽、CPU 以及内存这 3 个方面进行分析建模,确定因数据迁移而对
集群各部件造成的影响,从而确保在不同场景下均能使节能策略顺利执行.
(2) 文献[7]通过对集群进行任务迁移调度而达到节能的效果,但并未考虑因任务迁移调度而带来各工作
节点计算资源不足的问题,存在资源溢出的风险.本文通过建立资源约束模型,预防了集群数据处理
的资源溢出问题.
(3) 文献[37]通过对工作节点的内存电压进行动态调节而达到了节能的效果,但是动态调节工作节点的
内存电压存在较大误差,且会对集群性能造成一定的影响.本文由于是软件方面的节能策略,因此不
存在动态调压的问题.此外,本文通过数据迁移算法减少了节点间的通信开销,在降低集群计算延迟
的前提下节约了能耗.
(4) 实验选取 Intel 公司 Zhang 等人 [19] 发布在 GitHub 上的 Storm-benchmark-master 基准测试,而非已有文
献中作者自己定义的拓扑结构,因此更具有通用性.此外,将 ERDM 与大数据流式计算框架 Storm 的任
务迁移策略(task migration strategy in big data stream computing with Storm,简称 TMSH-Storm) [18] 、
LEEDSP [35] 以及 WNDVR-Storm [37] 进行对比,验证了策略的有效性.
2 问题建模与分析
为了确定 Storm 集群默认调度策略的能耗问题,建立了 DAG、线程内数据分配与路径开销这 3 个基本模
型,并进一步设计了资源约束模型、最优线程重分配模型与数据迁移模型,为节能策略的设计与实现提供了理
论依据.
2.1 基础逻辑模型
在流式处理中,通常用数据流图处理多个连续并行的任务,将其表示为 DAG.则在 Storm 集群中的流式作业
可用定义 1 表示.
[7]
定义 1(DAG). 在 Storm 集群中,每个流应用程序的逻辑通常由 DAG 描述,而 DAG 由顶点与边构成.则令
DAG=(C(G),B(G)),其中,C(G)={c 1 ,c 2 ,…,c n }表示由 n 个组件(component)构成的集合,包括数据源编程单元(spout)