淘宝王琤:Taobao JVM的性能优势与价值体现
【51CTO专访】北京时间2012年12月4日Velocity China 2012 Web性能与运维大会在北京召开,在会中51CTO记者有幸采访到了阿里集团的王b老师,王b老师主要负责淘宝JVM的开发工作,基于OpenJDK VM 为淘宝定制、优化更加贴近应用需求的专用JVM。而在此次Velocity大会上,王b老师主要为大家分享了《淘宝 JVM 优化实践》。也借此机会,51CTO编辑针对淘宝JVM这个话题跟王b老师进行了一些沟通,分享给大家。
王b(长仁)(右)正在与记者探讨
以下是采访内容:
51CTO:王老师您好,很多关心JVM技术的人都知道淘宝推出了开源的优化定制JVM版本:Taobao JVM,那么和Oracle官方的JVM版本相比,在性能上有哪些优势?
王b(长仁):一提到淘宝JVM,大家肯定是关心性能,,性能是大家直观感受到的不同。从性能上来说由于Taobao JVM经过优化定制和官方版本相比在性能上有所提升。对于具体应用来说,根据很多应用特殊的性能需求我们有相应的优化点,比如刚才讲的我们有很多的Intrinsic,这是在oracle官方版本里不可能做的,因为这些需求不是很通用。对于hotspotvm它更关注更加通用化的性能改进。而淘宝JVM更贴近淘宝的Java应用,我们可以接触到一线的性能需求,根据这些需求进行优化。所以淘宝jvm的性能提升的幅度在刚才PPT里面大家可以看到,会很有优势。这不是说我们做的比Oracle好,而是说我们更贴近于用户需求,我们按特定需求做一些特定的优化.一定会比通用的优化更好,这点是我们最有优势。
51CTO:在这个开源项目上,您主要负责哪些工作?
王b(长仁):我主要是负责专用计算组,我们开始做taobao JVM的时候只有我一个人,那是我刚刚来到淘宝的时候开始。大家有需求说我们淘宝以前对JVM的工作其实只能停留在参数调优,深入的去改它之前没有做过。我是因为来自Oracle,对于这方面接触过一些,所以我们就成立了这个组来专门的做taobao JVM,现在我们组的一部分同学在做taobao JVM,另外一部分在做专用计算的工作。
对于淘宝jvm这个项目,我的老板---章文嵩博士最早提出来要做这块,并且给予了很大的支持,他算是最初发起人。这个工作是淘宝需要的,因为淘宝是Java技术的最大应用方,是非常需要自己定制的JVM的。
51CTO:从JVM优化、定制及相关工具开发,有没有遇到哪些问题?您是如何去解决这些问题的?能否给网友分享下?
王b(长仁):其实遇到的问题非常多,最大的问题还是人的问题。因为刚才讲到JVM的社区是非常小的,这部分的工作没有人很熟悉它,也因为社区太小,做这个东西的人很少。因为这点,所以相关的人才很难找到。这个最大的问题也就解释了为什么我们从一开始做到成果大规模应用经历了近2年的时间,在这么长的时间里主要的工作其实就是在培养人才。我们组的绝大部分同学其实都是应届的毕业生,从应届毕业生就开始培养,经过近3年培养,他们在这个领域已经做的很不错了。所以最大的问题还是在人的问题,而不在于技术本身。人才的培养我觉得环境很重要,像我们阿里集团的核心系统部,这个环境就是一个非常好的环境。可能对于一位应届生来说,他可能刚来的时候是一张白纸,当然在这么一个技术氛围非常浓重的环境里他可以快速成长,只要他自己努力就会成长的非常好。的团队,。来到这里的应届毕业生在2-3年的锻炼能达到这个水平已经是非常好的了。有的同学经过他自己的努力、兴趣并在我们这个环境里不断磨练,已经跳到美国OracleJVM团队参与JVM核心的开发工作。昨天正明(章文嵩博士)讲到我们在向Oracle输出人才,这一方面肯定了我们的工作,当然对于我们来说其实是好事也不是好事。所以环境是比较重要的,就是说你在这个环境里头会非常快速的成长。当然也借助这个机会希望更多有兴趣的同学能够加入到我们这个环境来做更多的事情。
51CTO:从淘宝,天猫全部替换了Oracle官方的JVM版本后,您觉得淘宝JVM的价值主要体现在哪方面?
王b(长仁):线上很多已经替换了Oracle官方版本,价值主要体现在对应用方从心理上来说他们更加放心了。因为以前的时候JVM出问题,很难得到Oracle的支持。我们在Oraclebugdb上提Bug的时候反馈很不及时。现在用了我们的jvm话,我们组就会帮助他们解决问题,并且会专门为他们的需求来做一些JVM相关的工作,他们就觉得非常的放心。我们可能不用刻意关注具体的,比如性能,指标,功能点这些,单单从这一点来说其实大家就愿意来用我们的东西,因为更贴近他们,而且我们的服务很好。对于应用来说我们基本上都是面对面的上门服务。
51CTO:是否开放共享?
王b(长仁):对,我们到现在所有的patch都在我们的jvm.taobao.org上,所有同学都可以到上面把patch抓下来。我们贡献出来让大家一起用,同时也希望大家参与到其中,做一些贡献。开放是淘宝一个很重要的基因,,我们不仅仅是有JVM的开源,淘宝还开源了淘宝的linux kernel,MySQL,tengine,还有很多很多的应用都开源。
51CTO:淘宝Hadoop集群在淘宝内部有个美丽的名字叫“云梯”,从您认识“云梯”并从事优化工作后,您觉得淘宝当初选择Hadoop的主要原因是什么?