讲师简介
Jerry Du--百林哲咨询(北京)有限公司专家团队成员
阿里云MVP,业界资深技术专家,多家公司高级技术顾问,提供技术分享、培训和咨询等服务。从事开发和架构工作近10年,擅长Java体系下各类技术栈、拥有微服务、分布式高并发、大数据平台系统架构经验,并对前端技术有所涉猎,曾担任多家创业公司CTO、合伙人,负责研发线所有产品技术架构、团队管理等工作,开发了多款金融、风控大数据、区块链等产品。著有国内首本原创相关书籍,受到多位业界知名技术专家联名推荐作序。
课程简介
在互联网+的今天,人们在PC、手机、Pad 上安装了各式各样的软件服务或APP,享受着互联网技术带来的高效和便捷。随着这些产品的高速发展,大家对高性能、稳定性、安全性、扩展性等方面有了更高的要求,而诞生于20多年前的Java平台,一直紧跟时代脉搏,兼收并蓄,持续优化,在编程领域交出最满意的答卷,最终成为现代互联网服务端开发的王者。当然,一种语言再强大,也不能在任何时候都能达到我们理想的状态。在实际工作中,我们会遇到非常多的性能问题,有些问题是需要在开发设计前通过规范避免的,有些问题是需要根据线上生产环境“边查边看边调整”的。很多工程师在遇到这些问题时,会根据一些浅显的表现来做很“粗暴”的处理,比如:OOM了就升配内存,CPU飙高就升核,超时异常过多就延长超时时间,诚然,在紧急情况下,有些处理能马上解决问题,但毕竟不是长久之计,甚至有时候会弄巧成拙。为了让大家对性能调优有更深的认识,本次课程我们会从JVM基础开始讲起,比如JVM内存模型、GC机制、堆内存分析等,然后延展开来,通过线上常见问题来实战化学习JVM的性能监控及调优策略。
课程收益
1、 对Java体系下整体性能与调优有全面的认知
2、 熟练掌握JVM内存模型以及GC调优全过程(命令行、JVisualVM、Arthas等工具 )
3、 熟练掌握服务器端调优策略与最佳实践(线程模型、IO、压缩等)
4、 熟练掌握代码级性能提升关注点,以及性能基准测试方法
受众人群
从事Java的开发人员、测试人员、以及对Java感兴趣的人员
课程周期
2天(12H)
课程大纲
主题 | 授课内容 | |
引子 | 介绍JVM内存模型及GC问题、性能优化、服务端的性能配置等 | |
第一单元 JVM基础
| 该单元介绍JVM基础相关知识,包括:JVM组成、内存模型、启动参数、GC基础分析等 |
1. JVM组成及运行机制 2. Java内存模型 2.1 内存结构 2.2 内存与线程 3. JVM参数概要 3.1 启动参数格式 3.2 启动参数设置 3.3 常见启动参数 4. GC基础分析 4.1 GC信息查看 4.2 GC问题排查 4.2.1案例:快速查看线上的GC问题 4.3 常见GC算法浅析
|
第二单元 JVM内存及调优
| 该单元主要讲解堆内存分析、GC日志文件分析、内置命令行工具、堆内存分析及问题排查 | 5. 堆内存分析 5.1 堆内存结构 5.2 堆内存信息分析 5.3 OOM问题及内存dump文件 5.4 GC日志文件深度分析 5.4.1案例:一次线上GC导致的系统卡顿问题排查过程/OOM dump信息分析 6. 实战启动参数设置 6.1 GC日志配置 6.2 内存配置 7. 内置可视化诊断工具JVisualVM 7.1 功能概览与基础配置 7.2 线程监控与分析 7.3 内存监控与分析 7.4 CPU采样分析 8. 线上问题诊断工具Arthas 8.1 Arthas功能概览 8.2 使用Arthas查看系统全景运行时状态 8.3 Arthas常见命令工具 8.4 线程问题诊断 8.4.1案例:快速找到最忙执行线程/代码 8.5 耗时问题诊断 8.5.1案例:快速排查线上调用链耗时问题 8.6 如何线上诊断代码级故障 |
第三单元 服务器性能调优实战 | 该单元主要讲解Tomcat、Nginx的调优策略,通过举一反三,可以知道关于服务器性能调优的常规思路 | 9. 服务器调优综述 9.1 IO密集与CPU密集的区别 9.2 一次网络传输中的性能问题 9.3 线程池、吞吐与相关指标 10. Tomcat调优实战 10.1 Tomcat常见参数与配置 10.2 Tomcat线程模型 10.3 Tomcat线程池调优 10.4 Tomcat中的压缩问题 11. Nginx调优实战 11.1 Nginx超时配置 11.2 Nginx连接数配置 11.3 Nginx工作进程优化 11.4 Nginx中的压缩问题 |
第四单元 编写高性能代码 | 该单元介绍编写高性能代码的一些实践技巧 | 12. 高性能代码技巧 12.1 线程池选型与参数调优 12.2 基于Stream的并发计算 12.3 尽量做到逢超时必配置 12.4 ThreadLocal的资源释放 12.5 对GC友好的其他代码技巧 13. 基于JMH的性能测试 13.1 JMH基本介绍 13.2 JMH基本概念之Mode、Iteration、Warmup等 13.3 使用JMH进行代码级性能基准测试 |
Jerry Du
百林哲咨询(北京)有限公司专家团队成员
Jerry Du
百林哲咨询(北京)有限公司专家团队成员
Jerry Du
百林哲咨询(北京)有限公司专家团队成员
Jerry Du
百林哲咨询(北京)有限公司专家团队成员
Jerry Du
百林哲咨询(北京)有限公司专家团队成员
Jerry Du
百林哲咨询(北京)有限公司专家团队成员
Jerry Du
百林哲咨询(北京)有限公司专家团队成员