手机版
你好,游客 登录 注册
背景:
阅读新闻

横跨数据中心的JVM和Twitter的JDK

[日期:2016-11-16] 来源:infoq.com  作者:Dylan Raithel ,译者 薛命灯 [字体: ]

在2016旧金山QConf大会的解决方案进展情况报告会上,Twitter为我们呈现了一些演讲。昨天,Twitter的JVM团队对外公布他们正在开发、发布和维护一个JDK分支版本。这个JDK是OpenJDK的分支,在Twitter内部发行,目前可以支持OSX和Linux,每个月发布一次,如果有紧急版本会缩短发布时间。来自Twitter的John Coomes告诉我们,在如何对OpenJDK的特性进行趋异演化方面,Twitter所做的跟Oracle-JDK有些类似。当被问及Twitter是如何决定对上游OpenJDK的变更进行合并时,Coomes回答说,这个取决于要发布的特性,况且他们并不打算维护一个跟OpenJDK主干分支紧密耦合的版本。

Twitter-JDK带来一些新的特性,比如经过扩展的堆内存分析、异步垃圾回收日志、二进制日志框架Contrail、中间代G1、更丰富的API和命令行参数、性能改进以及缺陷修复。Twitter-JDK的一些改进特性也会被上游的OpenJDK所采用。

Coomes提到了在OpenJDK的JVM里存在的一些问题,特别是GC的长时间停顿问题。一种改进的措施是把I/O密集和对延迟敏感的任务分开执行。不过Twitter有成千上万个运行在JVM上的服务,对它们进行分离是个很枯燥的工作。我们可以在达到安全点时关闭JVM的I/O,不过这样会降低对JVM的监控能力。随着基于Python的服务逐渐向基于JVM的服务迁移,Twitter的JVM服务数量只增不减。Twitter正在通过实现异步GC日志和jvmstat来解决这些挑战所带来的问题。这样,GC停顿就不会再阻塞I/O。Coomes说之后将会发布Contrail,Contrail包含了一个JIT编译器和运行时,支持堆栈跟踪,可以作为实现异步GC日志的支持框架。Twitter-JDK实现了贝叶斯优化算法,这个技术借鉴自机器学习,让JVM可以持续高效地学习模糊成本函数,可以更快地找到更优的处理路径。

被问及Twitter-JDK的VM调优参数时,Coomes说大概有30个参数可以用来对VM进行调优。用来衡量VM性能的成本函数就是指在GC期间每秒可以处理的请求数。Twitter在测试环境使用这30个参数对新VM进行了70轮GC测试,结果在性能上有182%的提升。未来的工作将包括对VM进行压力测试或极限测试、更长的试验期、基于Mesos的并发试验以及及早探测并结束无效试验的能力。

查看英文原文:JVMs Across the Data Center and Twitter's JDK

本文永久更新链接地址http://www.linuxidc.com/Linux/2016-11/137192.htm

linux
相关资讯       JVM  JDK  Twitter 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款