淘宝JVM优化实践


淘 宝淘 宝淘 宝淘 宝JVM 优 化 实 践优 化 实 践优 化 实 践优 化 实 践 阿里集团核心系统研发部阿里集团核心系统研发部阿里集团核心系统研发部阿里集团核心系统研发部-长 仁长 仁长 仁长 仁 大 纲大 纲大 纲大 纲 • 淘宝优化、定制JVM 背景。 • 淘宝JVM 介绍 – 性能优化。 – 功能定制及增强。 Confidential & Proprietary – 功能定制及增强。 – bug 修复及社区互动 • 应用、部署规模及随后发展。 淘 宝淘 宝淘 宝淘 宝Java 技 术 应 用 规 模技 术 应 用 规 模技 术 应 用 规 模技 术 应 用 规 模 • 100+Java 应用。 • 1,000+Java 开发工程师。 • 10,000+ 线上JVM instance 。 Confidential & Proprietary 淘 宝 优 化淘 宝 优 化淘 宝 优 化淘 宝 优 化、、、、 定 制定 制定 制定 制JVM 背 景 及 进 程背 景 及 进 程背 景 及 进 程背 景 及 进 程 • 应用规模决定了干什么、怎么干 – JVM 异常、Crash ,怎么办? – JVM 如果可以这样,或者那样 工作该 多好? – Java 性能的 极致在 哪里? • TaobaoJVM 大事记 Confidential & Proprietary • TaobaoJVM 大事记 – 2010 年4月, 开始JVM 实现优化。 – 2010 年7月, 第一个优 化点GC Invisible Heap 实现原型。 – 2010 年10 月 ,第一 个优化JVM 版本TaobaoJVM 上线Beta 。 – 2011 年7月, 向Oracle 提 交签署Oracle Contributor Agreement 。 – 2012 年9月,TaobaoJVM 开源。 – 至今,累计发布3个TaobaoJVM 版本。 淘宝, 天猫等 基本替 换官方 版本。 阿里核心系统研发部专用计算组阿里核心系统研发部专用计算组阿里核心系统研发部专用计算组阿里核心系统研发部专用计算组 • 针对特定领域问题、算法及实现在不 同硬件 架构 上,以计算性能、效能为导向的优化。 – CPU 架构/微架构 – GPGPU Confidential & Proprietary – FPGA 及其它 • Java 虚拟机定制、优 化,基 于OpenJDK VM ,定制 打造Taobao JVM 并开源。 • 关于我们的更多信息请访问 jvm.taobao.org 淘 宝淘 宝淘 宝淘 宝JVM 性 能 优 化性 能 优 化性 能 优 化性 能 优 化 • JVM 编译优化为GC 加速 • 针对特定性能需求实现JVM Intrinsic 消除JNI 调用 开销 Confidential & Proprietary JVM 编 译 优 化编 译 优 化编 译 优 化编 译 优 化 • 全部Intel CPU ,用Intel C/CPP compiler 编译。 • Profile guide optimization 等 细致优 化手段。 • 小心Intel compiler 的Bug 。 • 性能比GCC 用同样优化方法略高,且GCC 也有 Confidential & Proprietary • 性能比GCC 用同样优化方法略高,且GCC 也有 Bug 。 • 预期对GC 性能提升有帮助。 编 译 优 化 效 果编 译 优 化 效 果编 译 优 化 效 果编 译 优 化 效 果 117.2907 94.9426100 120 140 YGC 总 时 间 对 比总 时 间 对 比总 时 间 对 比总 时 间 对 比,,,,6u32 Confidential & Proprietary 11.301 9.4473 0 20 40 60 80 Specjbb2005 SpecJVM2008 秒 秒秒 秒 HotspotVM TaobaoJVM JVM Intrinsic • 性能的极致需要Native 实现 • JNI 的开销相对很大 • JVM Intrinsic 有更直 接的优 化实现 – Native 实现 Confidential & Proprietary – Native 实现 – 开销小 – 例如sin(fsin)/cos(fcos)等 TaobaoJVM Intrinsics • 利用crc32 指令的TCrc32C.xxx • 利用packed compare 指令的byte 数 组比较Unsafe. byteArrayCompare() • 应用pause 指令的Unsafe.pause () Confidential & Proprietary • 应用pause 指令的Unsafe.pause () •… • 未来会突破目前256 个限制 TaobaoJVM Intrinsics • crc32 指令实现的JVM crc32 intrinsic • 应用到Hadoop ,TestDFSIO ,Throughput 提升40%-180% Confidential & Proprietary 淘 宝淘 宝淘 宝淘 宝JVM 功 能 定 制 及 增 强功 能 定 制 及 增 强功 能 定 制 及 增 强功 能 定 制 及 增 强 • 创新的off-heap 实现,GC invisible heap(GCIH) 。 • 利用PMU hardware 的Java profiling tool 。 • 诊断协助功能。 Confidential & Proprietary GCIH • 将长生命周期Java 对 象放在Java 堆 外。 • GC 不能管理GCIH 内Java 对 象。 • 好处: Confidential & Proprietary • 好处: – 帮助减少GC 工作量,从而加速GC 速 度。 – GCIH 内Java 对象可以在进程间共享。 GCIH 加 速加 速加 速加 速GC Confidential & Proprietary GCIH 共 享共 享共 享共 享 Confidential & Proprietary GCIH 共 享共 享共 享共 享 • 已在阿里Hadoop 集群之一Dump 中 心集群 应用。 – Worker 之间共享数据字典,每个Worker 进程节约内存 2G ,总共节约2.1T 内存。 – 减少GC 时间。 Confidential & Proprietary – 极大地节约了每个Worker 字典数据准备的时间。 – 线上部署后至今稳定运行近半年,未出一次故障。 利 用利 用利 用利 用PMU hardware 的的的的Java profiling tool • Java Profiling tool 层出不穷,支持利用hardware PMU 的event base sampling ? • 支持利用hardware PMU 的profiling tool 很多,支 持Java JIT ? Confidential & Proprietary • 尴 尬 境 地尴 尬 境 地尴 尬 境 地尴 尬 境 地:::: – Oprofile 的 不 足的 不 足的 不 足的 不 足 – Intel Vtune 的 不 足的 不 足的 不 足的 不 足 让让让让Perf 支 持支 持支 持支 持JIT • Perf 的优势。。。。 • Perf 不 支 持不 支 持不 支 持不 支 持JIT???? 改改改改 ,,,, 搞 起搞 起搞 起搞 起。。。。 • JVM 如 何 支 持如 何 支 持如 何 支 持如 何 支 持Perf ???? 改改改改 ,,,, 搞 起搞 起搞 起搞 起。。。。 • 加 一 个加 一 个加 一 个加 一 个JVMTI Agent 和和和和Perf 交 互交 互交 互交 互。。。。 Confidential & Proprietary • 加 一 个加 一 个加 一 个加 一 个JVMTI Agent 和和和和Perf 交 互交 互交 互交 互。。。。 Perf Top 看 到 一 切 热 点看 到 一 切 热 点看 到 一 切 热 点看 到 一 切 热 点 Confidential & Proprietary • Kernel 部分Patch 已交给淘宝Kernel 组维护,将随Kernel 开 源。kernel.taobao.org • JVM 部分Patch 及Agent 将随TaobaoJVM 开源。 jvm.taobao.org 诊 断 协 助 功 能诊 断 协 助 功 能诊 断 协 助 功 能诊 断 协 助 功 能 • 大数组申请预警。 • 打印详细GC 原因。 • Crash log 中输出指令汇编。 • Java 异常统计、监控。 Confidential & Proprietary • Java 异常统计、监控。 • 等等。 bug 修 复 及 社 区 互 动修 复 及 社 区 互 动修 复 及 社 区 互 动修 复 及 社 区 互 动 • 2011 年7月,向Oracle 提交签署Oracle Contributor Agreement (OCA)。 • 目前提交Bug 修复Patch 17 个并被接收。 • GreenTea Java User Group 成立 @GreenTeaJUG Confidential & Proprietary • GreenTea Java User Group 成立 @GreenTeaJUG • Taobao 出现在JavaOne 2012 的strategy keynote 中 目 前目 前目 前目 前TaobaoJVM 部 署 规 模 及 后 续 发 展部 署 规 模 及 后 续 发 展部 署 规 模 及 后 续 发 展部 署 规 模 及 后 续 发 展 • 淘宝,天猫绝大多数应用已经部署, 替换 HotspotVM 。 • 每半年一个新版本,基于JDK7u9/OpenJDK VM 23.6 的版本年底发布。 Confidential & Proprietary 谢 谢谢 谢谢 谢谢 谢 • 关注jvm.taobao.org • 欢迎加入GreenTeaJUG ,如有问题,@王王争 Confidential & Proprietary
还剩22页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

ygm4

贡献于2015-12-25

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf