4006-998-758
3000+课程任你选择
Java应用系统调试与调优技术
研发学院 体系架构设计 产品经理
王志远

对Spring Cloud、微服务、持续集成、持续交付、容器生态圈常用组件均有涉猎。 目前的研究重心:Spring Cloud、Docker、Kubernetes,及其相关生态的技术,并总结项目落地过程中遇到的坑。 出版著作 著有《Spring Cloud与Docker微服务架构实战》一书,是2017年十佳畅销书之一,也是国内第一本Spring Cloud相关书籍。 历任Java高级开发、架构师、高级架构师、技术专家。热爱技术交流,曾代表公司参加全球微服务架构高峰论坛、QCon等技术沙龙。拥抱开源,多个项目开源在Github与Git@OSC上,并有个人Side Project微信小程序,分享干货。 


查看老师详情
课程内容

课程大纲


时间

方向

内容安排

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第一天上午

课程综述

● 什么是调优?调优的目的是什么?

● 应用系统中有哪些可调优的方向

● 调优三板斧-帮助你快速上手调优

● 调优的原则

● 本套课程的目标


应用调优1-如何迅速发现应用系统的性能瓶颈?

● 日志分析工具

● 自建日志追踪体系

● 调用链跟踪工具与对比

● Skywalking是什么?

● 安装Skywalking

● Skywalking监控Java应用

● Skywalking监控数据库

● Skywalking高可用

● Skywalking存储

● 告警

● 链路跟踪原理剖析


应用调优2-其他监控工具

● 为什么要实现监控与可视化

● 案例分享:我们应用的监控是怎么做的?

● Spring Boot Actuator实战与原理剖析

● Spring Boot Admin - Spring Boot Actuator界面

● Prometheus实现更为全面的监控

● psi-probe实现传统Tomcat的监控

● ELK实现日志监控

● 实战1:定位应用层面性能问题的通用思路与步骤

● 实战2:线程池调优

● 实战3Tomcat调优

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第一天下午

应用调优3-常用调优技巧

● 对象池调优详解(对象池详解 + 调优技巧)

● 连接池调优详解(连接池详解 + 调优技巧)

● 线程池调优详解(线程池详解 + 调优技巧)

● 异步化(本地 + 远程异步化)

● 分布式缓存调优详解

● 锁优化(synchronized/ReentrantLock/ReentrantReadWriteLock/StampedLock

● 实战1:线程池调优实战


JVM调优1-理论篇

● JVM调优概述

● JVM内存结构详解

● 类加载过程详解

● 编译器优化机制详解

● 方法内联讲解

● 逃逸分析、标量替换、栈上分配

● 垃圾回收开篇

● 垃圾回收算法讲解

● 垃圾回收分代收集算法讲解

● 垃圾收集器1-相关术语与新生代收集器

● 垃圾收集器2-老年代收集器

● 垃圾收集器3-G1收集器

● 垃圾收集器5-如何选择垃圾收集器

● 垃圾收集器6-垃圾收集器相关JVM参数

● 其他垃圾收集器

● 垃圾收集器相关JVM参数总结


JVM调优2-工具篇

● 内置工具1-监控类工具:jpsjstat

● 内置工具2-故障排查类工具:jinfojmap

● 内置工具3-故障排查类工具:jstackjhat

● 内置工具4-故障排查类工具:jcmdjhsdb

● 内置工具5-可视化工具:jhsdb-hsdb

● 内置工具6-可视化工具:jconsole

● 内置工具7-可视化工具:VisualVM

● 内置工具8-商业授权工具:JMC

● 第三方工具1-MAT

● 第三方工具2-JITWatch

 

 

 

 

 

 

 

 

 

 

 

第二天上午

JVM调优3-实战篇

● 实战1:手把手分析GC日志

● 实战2CPU过高问题定位

● 实战3:内存溢出问题定位-堆内存溢出

● 实战4:内存溢出问题定位-栈内存溢出

● 实战5:内存溢出问题定位-方法区内存溢出

● 实战6:内存溢出问题定位-直接内存溢出

● 实战7:内存溢出问题定位-代码缓存区溢出

● 实战8:定位并解决项目越来越慢的问题


缓存常见问题与解决方案

● 缓存类型与适用场景

● 缓存回收策略

● 缓存回收算法

● 缓存模式详解

● 如何提升缓存命中率

● 缓存雪崩与解决方案

● 无底洞问题与解决方案

● 热点key重建与优化

● 缓存穿透与解决方案

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第二天下午

高并发容错-Sentinel

Sentinel是什么

使用Sentinel实现容错

Sentinel Dashboard

流控规则

降级规则

热点规则

系统规则

授权规则

代码配置规则

Sentinel API

SentinelResource注解详解

RestTemplate整合Sentinel

Feign整合Sentinel

规则持久化

集群流控


实践中有什么模式或机制能减缓或避免烂代码以减少调优压力

● SonarQube是什么

● SonarQube安装

● SonarQube与Maven配合

● SonarQube Scan使用


操作系统调优

● CPU相关调优命令

● 内存相关调优命令

● 磁盘相关调优命令


课程总结

● 课程总结


返回上一级