莫为洒落的记录哭泣:数据并行应用的内存弹性及其在集群调度中的应用
分布式、并行与集群计算
2017-02-15 v1
摘要
理解资源受限情况下数据并行工作负载的性能具有重要的实际意义,但不幸的是仅受到了有限的关注。本文识别、量化并展示了内存弹性,这是数据并行任务的一种内在属性。内存弹性允许任务以远少于其理想需求的内存运行,同时仅承受适度的性能惩罚。例如,我们发现给定仅为理想内存 10% 的内存时,PageRank 和 NutchIndexing Hadoop reducer 的速度仅分别变慢 1.2 倍/1.75 倍和 1.08 倍。我们表明内存弹性在 Hadoop、Spark、Tez 和 Flink 框架中普遍存在。我们还通过为 Hadoop 构建简单模型并将其扩展到 Tez 和 Spark,表明内存弹性在本质上是可预测的。为了展示利用内存弹性的潜在好处,本文进一步探讨了其在集群调度中的应用。在这种设置下,我们观察到内存弹性所启发的资源与时间的权衡变成了任务排队时间与任务运行时间的权衡。当以较少内存调度任务时,由于其等待时间减少,任务可能会更快完成。我们表明调度器可以将这种任务级别的权衡转化为改进的作业完成时间和集群范围的内存利用率。我们已将内存弹性集成到 Apache YARN 中。我们展示了在 50 节点 Hadoop 集群上平均作业完成时间高达 60% 的提升。广泛的模拟显示在大量场景下具有类似的改进。
引用
@article{arxiv.1702.04323,
title = {Don't cry over spilled records: Memory elasticity of data-parallel applications and its application to cluster scheduling},
author = {Calin Iorgulescu and Florin Dinu and Aunn Raza and Wajih Ul Hassan and Willy Zwaenepoel},
journal= {arXiv preprint arXiv:1702.04323},
year = {2017}
}
备注
13 pages (11 without references)