课程介绍
在互联网+的今天,人们在PC、手机、Pad 上安装了各式各样的软件服务或APP,享受着互联网技术带来的高效和便捷。随着这些产品的高速发展,大家对高性能、稳定性、安全性、扩展性等方面有了更高的要求,而诞生于20多年前的Java平台,一直紧跟时代脉搏,兼收并蓄,持续优化,在编程领域交出最满意的答卷,最终成为现代互联网服务端开发的王者。当然,一种语言再强大,也不能在任何时候都能达到我们理想的状态。在实际工作中,我们会遇到非常多的性能问题,有些问题是需要在开发设计前通过规范避免的,有些问题是需要根据线上生产环境“边查边看边调整”的。很多工程师在遇到这些问题时,会根据一些浅显的表现来做很“粗暴”的处理,比如:OOM了就升配内存,CPU飙高就升核,超时异常过多就延长超时时间。诚然,在紧急情况下,有些处理能马上解决问题,但毕竟不是长久之计,甚至有时候会弄巧成拙。为了让大家对性能调优有更深的认识,本次课程我们会从JVM基础开始讲起,比如JVM内存模型、GC机制、堆内存分析等,然后延展开来,通过线上常见问题来实战化学习JVM的性能监控及调优策略。
课程收益
1、熟练掌握JVM内存模型、GC机制详解;
2、熟练掌握线上常见JVM故障诊断、性能调优及参数配置;
3、熟练掌握常见的JVM故障排查工具箱。
受众人群
从事Java的开发人员、测试人员以及对系统调优有兴趣的人群。
课程大纲
课题 | 授课内容 | 课程大纲 |
第一单元 JVM基础(3H) | 该单元介绍JVM基础相关知识,包括:JVM组成、内存模型、启动参数、GC基础分析等 | 1. JVM组成及运行机制 |
2. Java内存模型 2.1内存结构 2.2内存与线程 | ||
3. JVM参数概要 3.1启动参数格式 3.2启动参数设置 3.3常见启动参数 | ||
4. GC基础分析 4.1GC信息查看 4.2GC问题排查 (案例:快速查看线上的GC问题) 4.3常见GC算法浅析 | ||
第二单元 JVM内存及调优(3.5H)
| 该单元主要讲解堆内存分析、GC日志文件分析、内置命令行工具、堆内存分析及问题排查 | 1. 堆内存分析 1.1 堆内存结构 1.2 堆内存信息分析 1.3 OOM问题及内存dump文件 1.4 GC日志文件深度分析 (案例:一次线上GC导致的系统卡顿问题排查过程/OOM dump信息分析) |
2. 实战启动参数设置 2.1 GC日志配置 2.2 内存配置 | ||
3. 线上问题诊断工具Arthas 3.1线程问题诊断 (案例:快速找到最忙执行线程/代码) 3.2 耗时问题诊断 (案例:快速排查线上调用链耗时问题) 3.3 如何线上诊断代码级故障 |