淘宝王琤:Taobao JVM的性能优势与价值体现

简介: 阿里集团作为中国最大的Java技术应用方,针对淘宝应用需求的JVM的优化定制是必要且收益巨大的。TaobaoJVM是基于OpenJDK VM并根据淘宝业务、应用特点及开发者需求开发的稳定,高效且深度定制的JVM版本。

阿里集团作为中国最大的Java技术应用方,针对淘宝应用需求的JVM的优化定制是必要且收益巨大的。TaobaoJVM是基于OpenJDK VM并根据淘宝业务、应用特点及开发者需求开发的稳定,高效且深度定制的JVM版本。是国内第一个优化、定制且开源的服务器版Java虚拟机。

AD:

【51CTO专访】北京时间2012年12月4日Velocity China 2012 Web性能与运维大会在北京召开,在会中51CTO记者有幸采访到了阿里集团的王琤老师,王琤老师主要负责淘宝JVM的开发工作,基于OpenJDK VM 为淘宝定制、优化更加贴近应用需求的专用JVM。而在此次Velocity大会上,王琤老师主要为大家分享了《淘宝 JVM 优化实践》。也借此机会,51CTO编辑针对淘宝JVM这个话题跟王琤老师进行了一些沟通,分享给大家。

 
王琤(长仁)(右)正在与记者探讨

以下是采访内容:

51CTO:王老师您好,很多关心JVM技术的人都知道淘宝推出了开源的优化定制JVM版本:Taobao JVM,那么和Oracle官方的JVM版本相比,在性能上有哪些优势?

王琤(长仁):一提到淘宝JVM,大家肯定是关心性能,,性能是大家直观感受到的不同。从性能上来说由于Taobao JVM经过优化定制和官方版本相比在性能上有所提升。对于具体应用来说,根据很多应用特殊的性能需求我们有相应的优化点,比如刚才讲的我们有很多的Intrinsic,这是在oracle官方版本里不可能做的,因为这些需求不是很通用。对于hotspotvm它更关注更加通用化的性能改进。而淘宝JVM更贴近淘宝的Java应用,我们可以接触到一线的性能需求,根据这些需求进行优化。所以淘宝jvm的性能提升的幅度在刚才PPT里面大家可以看到,会很有优势。这不是说我们做的比Oracle好,而是说我们更贴近于用户需求,我们按特定需求做一些特定的优化.一定会比通用的优化更好,这点是我们最有优势。

 

 

51CTO:在这个开源项目上,您主要负责哪些工作?

王琤(长仁):我主要是负责专用计算组,我们开始做taobao JVM的时候只有我一个人,那是我刚刚来到淘宝的时候开始。大家有需求说我们淘宝以前对JVM的工作其实只能停留在参数调优,深入的去改它之前没有做过。我是因为来自Oracle,对于这方面接触过一些,所以我们就成立了这个组来专门的做taobao JVM,现在我们组的一部分同学在做taobao JVM,另外一部分在做专用计算的工作。

对于淘宝jvm这个项目,我的老板---章文嵩博士最早提出来要做这块,并且给予了很大的支持,他算是最初发起人。这个工作是淘宝需要的,因为淘宝是Java技术的最大应用方,是非常需要自己定制的JVM的。

51CTO:从JVM优化、定制及相关工具开发,有没有遇到哪些问题?您是如何去解决这些问题的?能否给网友分享下?

王琤(长仁):其实遇到的问题非常多,最大的问题还是人的问题。因为刚才讲到JVM的社区是非常小的,这部分的工作没有人很熟悉它,也因为社区太小,做这个东西的人很少。因为这点,所以相关的人才很难找到。这个最大的问题也就解释了为什么我们从一开始做到成果大规模应用经历了近2年的时间,在这么长的时间里主要的工作其实就是在培养人才。我们组的绝大部分同学其实都是应届的毕业生,从应届毕业生就开始培养,经过近3年培养,他们在这个领域已经做的很不错了。所以最大的问题还是在人的问题,而不在于技术本身。人才的培养我觉得环境很重要,像我们阿里集团的核心系统部,这个环境就是一个非常好的环境。可能对于一位应届生来说,他可能刚来的时候是一张白纸,当然在这么一个技术氛围非常浓重的环境里他可以快速成长,只要他自己努力就会成长的非常好。的团队,。来到这里的应届毕业生在2-3年的锻炼能达到这个水平已经是非常好的了。有的同学经过他自己的努力、兴趣并在我们这个环境里不断磨练,已经跳到美国OracleJVM团队参与JVM核心的开发工作。昨天正明(章文嵩博士)讲到我们在向Oracle输出人才,这一方面肯定了我们的工作,当然对于我们来说其实是好事也不是好事。所以环境是比较重要的,就是说你在这个环境里头会非常快速的成长。当然也借助这个机会希望更多有兴趣的同学能够加入到我们这个环境来做更多的事情。

51CTO:从淘宝,天猫全部替换了Oracle官方的JVM版本后,您觉得淘宝JVM的价值主要体现在哪方面?

王琤(长仁):线上很多已经替换了Oracle官方版本,价值主要体现在对应用方从心理上来说他们更加放心了。因为以前的时候JVM出问题,很难得到Oracle的支持。我们在Oraclebugdb上提Bug的时候反馈很不及时。现在用了我们的jvm话,我们组就会帮助他们解决问题,并且会专门为他们的需求来做一些JVM相关的工作,他们就觉得非常的放心。我们可能不用刻意关注具体的,比如性能,指标,功能点这些,单单从这一点来说其实大家就愿意来用我们的东西,因为更贴近他们,而且我们的服务很好。对于应用来说我们基本上都是面对面的上门服务。

51CTO:是否开放共享?

王琤(长仁):对,我们到现在所有的patch都在我们的jvm.taobao.org上,所有同学都可以到上面把patch抓下来。我们贡献出来让大家一起用,同时也希望大家参与到其中,做一些贡献。开放是淘宝一个很重要的基因,,我们不仅仅是有JVM的开源,淘宝还开源了淘宝的linux kernel,MySQL,tengine,还有很多很多的应用都开源。

51CTO:淘宝Hadoop集群在淘宝内部有个美丽的名字叫“云梯”,从您认识“云梯”并从事优化工作后,您觉得淘宝当初选择Hadoop的主要原因是什么?

王琤(长仁):“云梯”我的了解也有限,我感觉阿里用云梯最主要的原因就是看到了它开源的基因,它的庞大应用群以及活跃的社区。这个基因很重要,就是说它是一个开放的系统,它的社区很活跃,它的用户很多,有像facebook,yahoo,这些公司的开发者共同在这社区里面参与hadoop的工作,,我们也是参与者,我们的益处就是我们可以分享很多别人的工作成果,同时对它有贡献。其实我们的成本很低的,很合算。而且hadoop在阿里的整个离线分析,离线计算里面做出了很多的工作,实际上我们现在“云梯”的整个系统负荷挺高的,下面跑的作业也非常的多,非常的关键,很好的体现了它的价值。所以我感觉我们选择hadoop的最主要原因是它的开放性,他很好的解决了我们的问题,同时我们可以跟众多的开发者一起让它变得更好。


目录
相关文章
|
2月前
|
存储 监控 算法
jvm-性能调优(二)
jvm-性能调优(二)
|
4月前
|
Arthas 监控 Java
(十一)JVM成神路之性能调优篇:GC调优、Arthas工具详解及各场景下线上最佳配置推荐
“在当前的互联网开发模式下,系统访问量日涨、并发暴增、线上瓶颈等各种性能问题纷涌而至,性能优化成为了现时代开发过程中炙手可热的名词,无论是在开发、面试过程中,性能优化都是一个常谈常新的话题”。
394 3
|
4月前
|
监控 Java 测试技术
JVM 性能调优 及 为什么要减少 Full GC
JVM 性能调优 及 为什么要减少 Full GC
114 4
|
29天前
|
存储 缓存 监控
聊聊JIT是如何影响JVM性能的!
聊聊JIT是如何影响JVM性能的!
|
2月前
|
Kubernetes Java 编译器
解锁极致性能:Quarkus如何让JVM应用调优变得前所未有的简单与高效!
Quarkus是一款专为GraalVM和OpenJDK设计的Kubernetes Native Java框架,采用AOT编译技术将Java应用转化为本地代码,大幅提升启动速度与运行效率。它简化了性能调优流程,如自动优化垃圾回收、类加载、内存管理及线程管理等,使开发者无需深入理解JVM细节即可轻松提升应用性能。与传统JVM应用相比,Quarkus显著降低了性能调优的复杂度。
94 2
|
4月前
|
运维 Java Linux
(九)JVM成神路之性能调优、GC调试、各内存区、Linux参数大全及实用小技巧
本章节主要用于补齐之前GC篇章以及JVM运行时数据区的一些JVM参数,更多的作用也可以看作是JVM的参数列表大全。对于开发者而言,能够控制JVM的部分也就只有启动参数了,同时,对于JVM的性能调优而言,JVM的参数也是基础。
101 8
|
4月前
|
缓存 监控 Java
Java虚拟机(JVM)性能调优实战指南
在追求软件开发卓越的征途中,Java虚拟机(JVM)性能调优是一个不可或缺的环节。本文将通过具体的数据和案例,深入探讨JVM性能调优的理论基础与实践技巧,旨在为广大Java开发者提供一套系统化的性能优化方案。文章首先剖析了JVM内存管理机制的工作原理,然后通过对比分析不同垃圾收集器的适用场景及性能表现,为读者揭示了选择合适垃圾回收策略的数据支持。接下来,结合线程管理和JIT编译优化等高级话题,文章详细阐述了如何利用现代JVM提供的丰富工具进行问题诊断和性能监控。最后,通过实际案例分析,展示了性能调优过程中可能遇到的挑战及应对策略,确保读者能够将理论运用于实践,有效提升Java应用的性能。 【
197 10
|
4月前
|
JSON Java BI
一次Java性能调优实践【代码+JVM 性能提升70%】
这是我第一次对系统进行调优,涉及代码和JVM层面的调优。如果你能看到最后的话,或许会对你日常的开发有帮助,可以避免像我一样,犯一些低级别的错误。本次调优的代码是埋点系统中的报表分析功能,小公司,开发结束后,没有Code Review环节,所以下面某些问题,也许在Code Review环节就可以避免。
158 0
一次Java性能调优实践【代码+JVM 性能提升70%】
|
3月前
|
监控 算法 Java
深入理解Java虚拟机:JVM调优与性能提升
本文旨在为Java开发者提供一条清晰的路径,以深入掌握Java虚拟机(JVM)的内部机制和性能调优技巧。通过具体案例分析,我们将探讨如何识别性能瓶颈、选择合适的工具进行监控与调试,以及实施有效的优化策略,最终达到提高应用程序性能的目的。文章不仅关注理论,更注重实践应用,帮助读者在面对复杂的Java应用时能够游刃有余。
72 0
|
4月前
|
缓存 监控 算法
Java面试题:讨论JVM性能调优的常见方法和技巧。
Java面试题:讨论JVM性能调优的常见方法和技巧。
54 1