论文标题
OneStopTuner:Spark应用程序的JVM调整的端到端体系结构
OneStopTuner: An End to End Architecture for JVM Tuning of Spark Applications
论文作者
论文摘要
Java是广泛使用的大数据框架(例如Apache Spark)的骨干,由于其生产力,基于JVM的执行能力以及对丰富库的支持。但是,这些应用程序的性能可能会因从所有现有JVM标志中选择的运行时标志而定。手动调整这些标志既麻烦又容易出错。自动调整方法可以缓解任务,但是当前的解决方案要么需要大量的处理时间,要么针对标志的子集以避免时间和空间要求。在本文中,我们介绍了Onestoptuner,这是一种基于机器学习的新型JVM标志的新颖框架。 OneStopTuner通过利用批处理模式为主动学习来控制数据生成量,以表征用户应用程序。基于用户选择的优化度量,OneStopTuner然后通过在生成的数据上应用功能选择算法来丢弃无关的JVM标志。最后,它采用样本有效的方法,例如贝叶斯优化和回归的贝叶斯优化在入围的JVM标志上的贝叶斯优化,以找到所选标志集的最佳值。我们在广泛使用的火花基准上评估了OneStoptuner,并将其性能与传统的基于模拟退火的自动调整方法进行了比较。我们证明,为了优化执行时间,OneStopTuner选择的标志通过使用模拟退火提出的标志配置,而与默认的Spark执行相比,通过默认的Spark Execution提供了高达1.35倍的速度。 OneStopTuner能够将数据生成的执行次数减少70%,并能够比基于标准的基于模拟退火的方法更快地提出最佳标志配置2.4倍,不包括数据生成时间。
Java is the backbone of widely used big data frameworks, such as Apache Spark, due to its productivity, portability from JVM-based execution, and support for a rich set of libraries. However, the performance of these applications can widely vary depending on the runtime flags chosen out of all existing JVM flags. Manually tuning these flags is both cumbersome and error-prone. Automated tuning approaches can ease the task, but current solutions either require considerable processing time or target a subset of flags to avoid time and space requirements. In this paper, we present OneStopTuner, a Machine Learning based novel framework for autotuning JVM flags. OneStopTuner controls the amount of data generation by leveraging batch mode active learning to characterize the user application. Based on the user-selected optimization metric, OneStopTuner then discards the irrelevant JVM flags by applying feature selection algorithms on the generated data. Finally, it employs sample efficient methods such as Bayesian optimization and regression guided Bayesian optimization on the shortlisted JVM flags to find the optimal values for the chosen set of flags. We evaluated OneStopTuner on widely used Spark benchmarks and compare its performance with the traditional simulated annealing based autotuning approach. We demonstrate that for optimizing execution time, the flags chosen by OneStopTuner provides a speedup of up to 1.35x over default Spark execution, as compared to 1.15x speedup by using the flag configurations proposed by simulated annealing. OneStopTuner was able to reduce the number of executions for data-generation by 70% and was able to suggest the optimal flag configuration 2.4x faster than the standard simulated annealing based approach, excluding the time for data-generation.