简介
使用Java开发过程中, 作为我们研发人员,既需要有有效的工具来排查软件交付使用过程中碰到的功能性异常,典型诸如OOM,Dead Lock, 异常抛出等。同时,在非功能性方面,软件性能是否达到既定预期,具体到譬如系统资源CPU,内存等是否使用合理,GC是否运行正常等,也需要有合理的手段来诊断分析。这个课程旨在帮助从事Java的开发人员,测试人员,从JavaVM的视角出发,如何针对不同的问题场景选择合理的诊断方法,工具, 找到这些问题的解决途径。
目标
1、了解JVM基础、GC调优、JIT调优
2、掌握Java问题排查方法、应用性能分析方法
3、帮助学员对Diagnostic Tools进行问题诊断、性能调优
课程时长
1天(6H)
受众人群
从事Java的开发人员、测试人员
分享提纲
第一部分 原理篇 | 本部分主要覆盖JVM基本原理,重点介绍GC/JIT调优,这也是一般开发中最常见的两类问题排查。 | 1. JVM基础 1.1 操作系统与JVM 1.2 JVM内部剖析 1.3 32bit JVM与64bitJVM 2. GC调优 2.1 JVM 内存布局 2.2 GC基础 2.2.1 Mark and Seep 2.2.2 Mark and Compact 2.2.3 Mark and Copy 2.3 HotSpot GC: CMS/G1揭秘 2.4 GC调优误区 3. JIT调优 3.1 JIT基础 3.2 HotSpot JIT调优实践 教学时长: 3H |
第二部分 方法篇 | 本部分主要从方法学的角度,来讲授在实际的Java问题排查,性能调优过程中,应该遵循的基本方法学原则 | 1. Java问题排查方法学 1.1 Java常见问题排查导图 1.2 解决常见问题思路 1.2.1 OOM 1.2.2 Thread/Synchronization 1.2.3 GC Log 2. 应用性能分析方法学 2.1 性能分析方法学: Layered和Outside-in 2.2 分层性能方法应用 2.2.1 OS层面分析 2.2.2 JVM层面分析 2.2.3 应用程序层面分析 教学时长: 2H |
第三部分 实践篇 | 各种排查工具原理,使用介绍以及案例分享 | 1. Monitoring,Profiling,Debugging原理 1.1 JMX以及性能监控 1.2 Profiling 1.2.1 Instrument-based Profiling技术 1.2.2 Sampling-based Profiling技术 1.2.3 什么才是最适合你的? 1.3 JVM Debugging原理 2. Diagnostic Tools介绍,及问题诊断,性能调优实例分享 2.1 Diagnostic工具概览 2.2 典型案例分享 2.2.1 什么导致了OOM 2.2.2 谁在消耗你的CPU 2.2.3 频繁GC的幕后黑手 |