Java生产环境下性能监控与调优详解
【课程介绍】本课程将为你讲解如何在生产环境下对Java应用做性能监控与调优;通过本课程,你将掌握多种性能监控工具应用,学会定位并解决诸如内存溢出、cpu负载飙高等问题;学会线上代码调试,Tomcat、Nginx,GC调优等手段; 读懂JVM字节码指令,分析源码背后原理,提升应对线上突发状况的能力
【课程目录】
- 第1章 课程介绍(提供问答区答疑解惑)本章为大家介绍生产环境可能存在的问题和常用的性能监控工具,以及课程能学到什么,课程内容如何安排等,让大家对课程有个全貌的认识,从而更好的学习这门课程。
- 1-1 课前必读(不看会错过一个亿)
- 1-2 为什么学习这门课程?
- 第2章 基于JDK命令行工具的监控本章带大家学习JDK的命令行监控工具的使用,包括jps、jinfo、jstat、jmap、jstack, 并结合MAT实战如何定位内存溢出,实战如何定位死循环和死锁。
- 2-1 JVM的参数类型
- 2-2 查看JVM运行时参数
- 2-3 jstat查看JVM统计信息
- 2-4 演示内存溢出
- 2-5 导出内存映像文件
- 2-6 MAT分析内存溢出
- 2-7 jstack与线程的状态
- 2-8 jstack实战死循环与死锁
- 第3章 基于JVisualVM的可视化监控本章带大家学习可视化的监控工具JVisualVM的使用,学习如何用它来监控本地和远程的JAVA进程,包括监控内存、线程、方法执行时间等等。
- 3-1 监控本地java进程
- 3-2 监控远程的java进程
- 第4章 基于Btrace的监控调试本章带大家学习如何安装btrace、如何编写btrace脚本来对生产环境下的代码进行监控调试,比如获取生产环境下某个方法的参数、返回值、异常、执行的行号等等。
- 4-1 btrace入门
- 4-2 拦截构造函数、同名函数
- 4-3 拦截返回值、异常、行号
- 4-4 拦截复杂参数、坏境变量、正则匹配拦截
- 4-5 注意事项
- 第5章 Tomcat性能监控与调优本章带大家学习如何在本地来远程调试tomcat和对tomcat服务器的内存、线程等做监控,会介绍两款监控工具—tomcat自带的manager和开源的psi-probe,然后会讲解常用的tomcat的调优的方法。
- 5-1 tomcat远程debug
- 5-2 tomcat-manager监控
- 5-3 psi-probe监控
- 5-4 tomcat优化
- 第6章 Nginx性能监控与调优本章带大家学习如何来安装nginx,并监控nginx的连接信息和请求信息,会介绍两款命令行工具ngx_http_stub_status和ngxtop,还有一款可视化工具nginx-rrd,然后会讲解常用的nginx的调优的方法。
- 6-1 nginx安装
- 6-2 ngx_http_stub_status监控连接信息
- 6-3 ngxtop监控请求信息
- 6-4 nginx-rrd图形化监控
- 6-5 nginx优化
- 第7章 JVM层GC调优本章带大家学习JVM的内存结构,常见的垃圾回收算法和垃圾收集器,不同垃圾收集器的日志结构,然后介绍两款可视化的日志分析工具,通过分析日志得到GC的性能指标和出现GC的原因,最后带大家实战GC垃圾回收调优。
- 7-1 JVM的内存结构
- 7-2 常见的垃圾回收算法
- 7-3 垃圾收集器-1
- 7-4 垃圾收集器-2
- 7-5 GC日志格式详解
- 7-6 可视化工具分析GC日志
- 7-7 ParallelGC调优
- 7-8 G1调优
- 7-9 本章小结
- 第8章 JVM字节码与Java代码层调优本章带大家学习JVM的字节码指令,从字节码层面讲解一些常见问题的底层原理(面试能回答上的话, 绝对加分),比如:i++和++i哪一种效率高?循环体中做字符串+拼接为什么效率低?然后会重点对String做讲解,包括String常量池的变化、String字面常量、String.intern等,最后分享老师在开发中积累的常用的JAVA代码优化的20多…
- 8-1 jvm字节码指令-1
- 8-2 jvm字节码指令-2
- 8-3 i++与++i
- 8-4 字符串+拼接
- 8-5 Try-Finally字节码
- 8-6 String Constant Variable
- 8-7 常用代码优化方法-1
- 8-8 常用代码优化方法-2
- 第9章 课程总结本章带大家总结回顾本课程的重难点知识点,同时也希望大家能手动梳理出本门课程的知识架构脑图,方面大家以后建立知识体系以及深入的学习和解决更难的问题。
- 9-1 课程总结