Skip to main content
QUICK REVIEW

[论文解读] Improving Spark Application Throughput Via Memory Aware Task Co-location: A Mixture of Experts Approach

Vicent Sanz Marco, Ben Taylor|arXiv (Cornell University)|Oct 2, 2017
Cloud Computing and Resource Management参考文献 58被引用 14
一句话总结

该论文提出了一种专家混合模型方法,通过在运行时从多个预训练的内存模型中选择合适模型,以预测Spark应用的内存使用情况,实现在共享主机上的精准任务共置。与孤立执行相比,该方法使系统吞吐量提高8.69倍,完成时间缩短49%;相较于最先进共置方案,吞吐量提升1.28倍,完成时间缩短1.68倍。

ABSTRACT

Data analytic applications built upon big data processing frameworks such as Apache Spark are an important class of applications. Many of these applications are not latency-sensitive and thus can run as batch jobs in data centers. By running multiple applications on a computing host, task co-location can significantly improve the server utilization and system throughput. However, effective task co-location is a non-trivial task, as it requires an understanding of the computing resource requirement of the co-running applications, in order to determine what tasks, and how many of them, can be co-located. In this paper, we present a mixture-of-experts approach to model the memory behavior of Spark applications. We achieve this by learning, off-line, a range of specialized memory models on a range of typical applications; we then determine at runtime which of the memory models, or experts, best describes the memory behavior of the target application. We show that by accurately estimating the resource level that is needed, a co-location scheme can effectively determine how many applications can be co-located on the same host to improve the system throughput, by taking into consideration the memory and CPU requirements of co-running application tasks. Our technique is applied to a set of representative data analytic applications built upon the Apache Spark framework. We evaluated our approach for system throughput and average normalized turnaround time on a multi-core cluster. Our approach achieves over 83.9% of the performance delivered using an ideal memory predictor. We obtain, on average, 8.69x improvement on system throughput and a 49% reduction on turnaround time over executing application tasks in isolation, which translates to a 1.28x and 1.68x improvement over a state-of-the-art co-location scheme for system throughput and turnaround time respectively.

研究动机与目标

  • 为解决大数据工作负载中资源利用效率低下的问题,通过在共享主机上共置对延迟不敏感的Spark应用来实现。
  • 克服固定资源预测模型的局限性,这些模型要么需要用户提供估计值,要么采用“一刀切”的函数。
  • 通过在运行时准确预测Spark应用的内存占用,提升系统吞吐量并缩短应用完成时间。
  • 实现在运行时根据应用和数据特征,动态自适应地选择专用内存模型。
  • 提供一个可扩展、可扩展的框架,用于建模多样化的Spark应用内存行为,而无需手动调优。

提出的方法

  • 在代表性Spark应用上使用历史数据离线训练多个专用内存模型(线性和非线性)。
  • 在运行时使用机器学习分类器,为给定应用和数据集选择最合适的模型(专家)。
  • 动态组合所选专家的预测结果,以估算目标Spark应用的内存占用。
  • 将预测框架与运行时任务调度器集成,实现兼容任务在相同主机上的共置。
  • 通过使用准确的内存预测,确保共置不超出物理内存限制,防止发生内存溢出错误。
  • 通过支持新模型的添加与仅在合适时机选择,实现可扩展性,从而支持长期适应性。

实验结果

研究问题

  • RQ1与单体模型相比,专家混合框架是否能提高对多样化Spark应用内存占用预测的准确性?
  • RQ2在共置环境中,运行时对专用内存模型的选择如何影响系统吞吐量和应用完成时间?
  • RQ3内存感知的任务共置在多大程度上能减少基于Spark的数据中心中的资源利用率不足?
  • RQ4与最先进共置方案相比,该方法在吞吐量和延迟方面表现如何?
  • RQ5该框架能否在不重新训练整个模型集的情况下,扩展以支持新应用?

主要发现

  • 所提方法在系统吞吐量方面达到了理想内存预测器83.9%的性能。
  • 平均而言,该方法相比孤立执行使系统吞吐量提高了8.69倍。
  • 与孤立执行相比,该方法将平均归一化完成时间减少了49%。
  • 与最先进共置方案相比,该方法使吞吐量提高1.28倍,完成时间缩短1.68倍。
  • 专家混合框架在40台节点的集群上,对44个代表性Spark应用实现了准确且自适应的内存预测。
  • 系统支持增量式模型添加,使框架能够随时间演化并支持新型应用。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。