Page 289 - 《软件学报》2021年第8期
P. 289

蒲勇霖  等:Storm 平台下的线程重分配与数据迁移节能策略                                                 2571


                 设置为 16,表示各基准测试运行时,一个工作节点内仅分配一个工作进程;topology.acker.executors 统一设置
                 为 16,表示保证集群内数据流的可靠传输;此外,为防止数据传输因超时而发生重传,需要通过多次实验验
                 证结果,实验结果为 topology.max.spout.pending 统一设置为 200;最后,统一设置每个 message.size 等于一个
                 tuple 的大小.
                                             Table 3    Configuration of benchmarks
                                                  表 3   基准测试参数配置
                                         基准侧试               参数               数值
                                                       component.spout_num   50
                                                     component.split_bolt_num  100
                                                     component.count_bolt_num  100
                                        WordCount
                                                         topology.works      16
                                                      topology.acker.executors  16
                                                     topology.max.spout.pending  200
                                                       component.spout_num   50
                                                     component.sort_bolt_num  100
                                        RollingSort      emit.frequency      10
                                                          chunk.size       2 000 000
                                                          message.size      100 000
                                                         topology.level       3
                                                          message.size      2 000
                                           Sol
                                                       component.spout_num   50
                                                       component.bolt_num    100
                                                       component.spout_num   50
                                                     component.split_bolt_num  100
                                        RollingCount   component.rolling_count_bolt_num  100
                                                         window.length       150
                                                         emit.frequency      30

                    为了验证 ERDM 的效果,本文还与 TMSH-Storm         [18] 、LEEDSP [35] 和 WNDVR-Storm [37] 进行了对比实验.其中,
                    •   TMSH-Storm 的核心思想是:对集群的任务调度进行优化,继而达到提高集群性能的目的.
                    •   LEEDSP 的核心思想是:弹性调节集群节点的资源,并通过 DVFS 技术动态调节节点 CPU 的电压,以此
                        达到节能的效果.且该策略为流式处理节能策略的主要代表,适用于大多数流式处理平台(如 Storm、
                        Flink [10] 以及 Spark Streaming [11] 等).
                    •   WNDVR-Storm 的核心思想为:通过动态调节工作节点的内存电压而达到节能的效果,且 WNDVR-
                        Storm 由非关键路径内存电压调节(DRAM voltage regulation on non-critical path,简称 DVRNP)与关键
                        路径内存电压调节(DRAM voltage regulation on critical path,简称 DVRCP)两种算法组成.
                    此外,为保证在同等条件下验证本文策略的效果,TMSH-Storm、LEEDSP 以及 WNDVR-Storm 的相关参数
                 与 ERDM 保持一致.
                    为选择合适的时间窗口用于监控集群内各节点资源的负载信息,本文以 WordCount 为例,在系统默认调度
                 策略下,根据额外增加的网络开销与系统延迟为条件选择合适的时间窗口取值,具体的结果见表 4.
                                               Table 4    Choose of time windows
                                                   表 4   时间窗口的选择
                                   时间窗口取值(s)     额外增加的网络开销(%)        额外增加的系统延迟(ms)
                                        10              17.4                7.5
                                        20              10.3                13.3
                                        30               6.1                27.1
                                        40               4.6                51.8
                                        50               3.2                94.7

                    根据表 4 可知,当时间窗口为 10s 与 20s 时,集群内额外增加的网络开销较大.其原因为:时间窗口取值较低
                 而导致集群内数据库的读写过于频繁,读写数据库产生的网络开销相对较大,从而影响集群拓扑内任务的正常
                 执行,造成无法触发 ERDM 的问题.当时间窗口为 40s 和 50s 时,集群内额外增加的系统延迟较高,已影响到集群
   284   285   286   287   288   289   290   291   292   293   294