Java应用系统调试与调优技术

Java应用系统调试与调优技术
    马上咨询


    课程概要

    随着项目业务的发展,各种性能问题逐渐浮现,性能调优有助于提升用户体验、节省企业成本、改善项目能力,但如何调优却是难中之难。本课程采用理论结合实战的方式,帮助大家:

    • 借助各种工具,迅速发现性能瓶颈
    • 沉淀调优的理论支撑,帮助大家有能力去实施调优
    • 通过实战,积累调优经验

    教学目标

    • 系统掌握性能调优相关的知识体系
    • 掌握各种性能调优工具如何使用,并能分析项目的性能瓶颈
    • 调优技巧分享


    课程时间

    学习时长: 3天


    课程安排

    方向内容安排
    课程综述
    • 什么是调优?调优的目的是什么?
    • 应用系统中有哪些可调优的方向
    • 调优三板斧-帮助你快速上手调优
    • 调优的原则
    • 本套课程的目标
    应用调优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:线程池调优
    • 实战3:Tomcat调优
    应用调优3-常用调优技巧
    • 对象池调优详解(对象池详解 + 调优技巧)
    • 连接池调优详解(连接池详解 + 调优技巧)
    • 线程池调优详解(线程池详解 + 调优技巧)
    • 异步化(本地 + 远程异步化)
    • 分布式缓存调优详解
    • 锁优化(synchronized/ReentrantLock/ReentrantReadWriteLock/StampedLock…)
    • 实战1:线程池调优实战
    JVM调优1-理论篇
    • JVM调优概述
    • JVM内存结构详解
    • 类加载过程详解
    • 编译器优化机制详解
    • 方法内联讲解
    • 逃逸分析、标量替换、栈上分配
    • 垃圾回收开篇
    • 垃圾回收算法讲解
    • 垃圾回收分代收集算法讲解
    • 垃圾收集器1-相关术语与新生代收集器
    • 垃圾收集器2-老年代收集器
    • 垃圾收集器3-G1收集器
    • 垃圾收集器5-如何选择垃圾收集器
    • 垃圾收集器6-垃圾收集器相关JVM参数
    • 其他垃圾收集器
    • 垃圾收集器相关JVM参数总结
    JVM调优2-工具篇
    • 内置工具1-监控类工具:jps、jstat
    • 内置工具2-故障排查类工具:jinfo、jmap
    • 内置工具3-故障排查类工具:jstack、jhat
    • 内置工具4-故障排查类工具:jcmd、jhsdb
    • 内置工具5-可视化工具:jhsdb-hsdb
    • 内置工具6-可视化工具:jconsole
    • 内置工具7-可视化工具:VisualVM
    • 内置工具8-商业授权工具:JMC
    • 第三方工具1-MAT
    • 第三方工具2-JITWatch
    JVM调优3-实战篇
    • 实战1:手把手分析GC日志
    • 实战2:CPU过高问题定位
    • 实战3:内存溢出问题定位-堆内存溢出
    • 实战4:内存溢出问题定位-栈内存溢出
    • 实战5:内存溢出问题定位-方法区内存溢出
    • 实战6:内存溢出问题定位-直接内存溢出
    • 实战7:内存溢出问题定位-代码缓存区溢出
    • 实战8:定位并解决项目越来越慢的问题
    数据库调优-慢SQL发现与分析
    • 数据库调优的维度
    • 测试数据准备与数据操作工具
    • 慢查询日志与分析
    • EXPLAIN详解(使用、可视化、扩展与性能计算公式)
    • SQL性能分析
    • OPTIMIZER TRACE详解
    • 数据库诊断命令
    • 慢查询日志
    • EXPLAIN详解
    • MySQL SQL性能分析
    • OPTIMIZER_TRACE详解
    • MySQL数据库诊断命令
    数据库调优-调优理论
    • 索引数据结构-B-Tree索引、Hash索引、空间索引、全文索引
    • B-Tree(B+Tree)、Hash索引的特性与限制
    • 创建索引的原则
    • 索引失效与解决方案
    • 索引调优技巧1-长字段的索引调优
    • 索引调优技巧2-单列索引 vs 组合索引
    • 索引调优技巧3-覆盖索引
    • 索引调优技巧4-重复索引、冗余索引、未使用的索引如何处理
    数据库调优-常用语句的调优
    • JOIN语句优化1-JOIN种类、算法与原理
    • JOIN语句优化2-如何优化JOIN语句
    • Limit语句优化
    • COUNT语句优化
    • ORDER BY语句优化
    • GROUP BY语句调优与DISTINCT语句调优
    • 表结构设计优化
    数据库调优-调优神器Percona Toolkit
    • 安装
    • 使用
    • 其他工具 
    数据库调优-复杂SQL调优实战
    • 实战1:常规调优方式
    • 实战2:激进调优方式
    课程总结
    • 课程总结