典型大数据应用JVM垃圾回收算法的评测开题报告
2020-04-13 17:06:26
1. 研究目的与意义(文献综述)
java自诞生以来就受到各方面的瞩目,在步入大数据时代以后,各种运行在jvm(javavirtual machine)上的大数据应用更是对于java虚拟机的性能提出了极高的要求。许多大数据应用都采用高级程序设计语言进行设计,而这些高级程序设计语言往往都通过垃圾回收算法进行自动的内存管理。
现代计算已经进入了大数据时代。对于来自各行各业的科学家,网络上存在的大量数据能够让他们发现更多有趣的信息,而这些数据需要同样大型的数据系统进行处理。作为一个面向对象语言,java经常被选择作为工具来实现大数据处理框架。在大数据条件下,许多云系统,类似hadoop、spark、zookeeper等都用托管式语言编写。垃圾回收支撑着许多高级语言的优点,能够减少管理指针的工作,提升安全性并且避免内存泄漏。这些垃圾回收的特性提升了开发者和使用者的生产效率。
然而,但是,对于垃圾回收算法而言,快速且庞大的堆给垃圾回收添加了许多的限制,这些特性并非是免费的午餐。对于jvm,在数据处理过程中垃圾回收的时间可以占到三分之一的比重。一个1gb的数据输入可能会带来大小达12gb以上的堆。数据处理任务会给jvm带来大量的对象,导致长时间的垃圾回收暂停时间,使得虚拟机中堆的大小变得难以控制。一个高性能的垃圾回收(garbage collection)算法将会给给jvm带来极大的性能提升。
2. 研究的基本内容与方案
本研究首先将对垃圾回收算法的发展和种类进行调查研究,针对目前环境和java的版本变化和不同的虚拟机,选取主要的垃圾回收算法作为对象进行研究。目前典型的垃圾回收算法包括标记-清除(mark-sweep)算法、复制算(copying)法、标记-整理(mark-compact)算法、分代收集(generationalcollection)算法等,研究将根据应用广泛程度等指标进行选取研究。
spark是基于内存计算的大数据分布式计算框架,代码开源。spark基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将spark部署在大量廉价硬件之上,形成集群。本文将结合spark计算引擎,将研究应用在大数据环境下,针对大数据环境下虚拟机中垃圾回收算法的性能进行分析。设计实验,针对垃圾回收算法的各项指标进行评测,比较不同垃圾回收算法和不同数据输入条件下的实验结果,根据实验结果对于算法性能进行分析。
之后对于应用进行根据数据的处理细节进行分类,应用软件统计吞吐量,通过应用对于计算资源、存储资源的占用以及处理方式的不同分为不同类型,如计算密集型(cpu-bound)、i/o密集型((cpu-bound)),采取指标进行分析。
3. 研究计划与安排
2018/1/14—2018/2/28:确定选题,查阅文献,外文翻译和撰写开题报告;
2018/3/1—2018/4/30:系统架构、程序设计与开发、系统测试与完善;
2018/5/1—2018/5/25:撰写及修改毕业论文;
4. 参考文献(12篇以上)
[1] gog i, giceva j, schwarzkopf m, et al. broom: sweeping outgarbage collection from big data systems[j]. young,2015, 4: 8.
[2] bu y, borkar v, xu g, et al. a bloat-aware design for big dataapplications[c]//acm sigplan notices. acm, 2013, 48(11): 119-130.
[3] maas m, harris t, asanovic k, et al. trash day: coordinatinggarbage collection in distributed systems[c]//hotos. 2015.