MURS:缓解面向服务的数据处理系统中的内存压力
分布式、并行与集群计算
2017-03-30 v2
摘要
虽然数据处理系统通常作为批处理系统工作,但许多企业将其部署为服务,我们称之为面向服务的数据处理系统。研究表明,内存数据处理系统遭受严重的内存压力。由于各种原因,面向服务的数据处理系统的这种情况甚至更糟。例如,在面向服务的系统中,多个提交的任务同时启动并在相同的资源上下文中执行,而在批处理模式中任务是逐个处理的。因此,内存压力将影响所有提交的任务,包括那些单独运行时仅产生轻微内存压力的任务。在本文中,我们发现产生内存压力的原因是运行中的任务在有限的内存空间中产生了大量长生命周期数据对象。我们的研究进一步揭示,这些长生命周期数据对象是由内存处理框架调用的 API 函数生成的。基于这些发现,我们提出了一种根据内存使用率对 API 函数进行分类的方法。此外,我们设计了一个名为 MURS 的调度器来缓解内存压力。我们在 Spark 中实现了 MURS 并进行了实验以评估其性能。结果表明,与 Spark 相比,MURS 能够:1) 将提交作业的执行时间最多减少 65.8%;2) 通过将垃圾回收时间最多减少 81% 来缓解服务器中的内存压力;3) 减少数据溢出,从而将磁盘 I/O 减少约 90%。
引用
@article{arxiv.1703.08981,
title = {MURS: Mitigating Memory Pressure in Service-oriented Data Processing Systems},
author = {Xuanhua Shi and Xiong Zhang and Ligang He and Hai Jin and Zhixiang Ke and Song Wu},
journal= {arXiv preprint arXiv:1703.08981},
year = {2017}
}
备注
9 pages, 7 figures