大纲1.每秒仅上百请求的系统为何会OOM(RPC超时时间设置过长导致QPS翻几倍)2.Jetty服务器的NIO机制如何导致堆外内存溢出(S区太小 + 禁NIO的显式GC)3.一次微服务架构下的RPC调用引发的OOM故障排查实践(MAT案例)4.一次没有WHERE条件的SQL语句引发的OOM问题排查实践(使用MAT技巧)5.每天10亿数据的日志分析系统的OOM问题排查(堆内存太小 + 递归要谨慎)6
大纲1.如何对系统的OOM异常进行监控和报警2.如何在JVM内存溢出时自动dump内存快照3.Metaspace区域内存溢出时应如何解决(OutOfMemoryError: Metaspace)4.JVM栈内存溢出时应如何解决(StackOverflowError)5.JVM堆内存溢出时应该如何解决(OutOfMemoryError: Java heap space)1.如何对系统的OOM异常进行
大纲1.线上系统突然由于OOM内存溢出挂掉2.什么是内存溢出及哪些区域会发生内存溢出3.Metaspace如何因类太多而发生内存溢出4.无限制调用方法如何让线程的栈内存溢出5.对象太多导致堆内存实在放不下而内存溢出6.模拟JVM Metaspace内存溢出的场景(动态生成268个类占10M)7.模拟JVM栈内存溢出的场景(线程调用6000次方法占1M栈内存)8.模拟JVM堆内存溢出的场景(36万个
大纲1.线上大促活动导致的老年代内存泄漏和FGC(MAT分析出本地缓存没处理好)2.百万级数据误处理导致频繁FGC(大数据量加载到内存处理 + String.split())3.JVM运行原理和GC原理总结4.JVM性能优化的思路和步骤5.问题汇总1.线上大促活动导致的老年代内存泄漏和FGC(MAT分析出本地缓存没处理好)(1)线上故障场景(2)初步排查CPU负载过高的原因(3)初步排查频繁FGC
大纲1.如何优化每秒十万QPS的社交APP的JVM性能(增加S区大小 + 优化内存碎片)2.如何对垂直电商APP后台系统的FGC进行深度优化(定制JVM参数模版)3.不合理设置JVM参数可能导致频繁FGC(优化反射的软引用被每次YGC回收)4.线上系统每天数十次FGC导致频繁卡顿的优化(大对象问题)5.电商大促活动下严重FGC导致系统直接卡死的优化(System.gc()导致)6.问题汇总1.如何
大纲1.使用jstat了解线上系统的JVM运行状况2.使用jmap和jhat了解线上系统的对象分布3.如何分析JVM运行状况并合理优化4.使用jstat分析模拟的BI系统JVM运行情况5.使用jstat分析模拟的计算系统JVM运行情况6.问题汇总1.使用jstat了解线上系统的JVM运行状况(1)JVM的整体运行原理简单总结(2)功能强大的jstat(3)jstat -gc PID(4)其他的js
大纲1.动手模拟出频繁Young GC的场景2.JVM的Young GC日志应该怎么看3.代码模拟动态年龄判定规则进入老年代4.代码模拟S区放不下部分进入老年代5.JVM的Full GC日志应该怎么看6.问题汇总1.动手模拟出频繁Young GC的场景(1)程序的JVM参数示范(2)如何打印出JVM GC日志(3)示例程序代码(4)对象是如何分配在Eden区内的(5)采用指定JVM参数运行程序(1
大纲1.JVM GC导致系统突然卡死无法访问2.什么是Young GC什么是Full GC3.Young GC、Old GC和Full GC的发生情况4.频繁YGC的案例(G1解决大内存YGC过慢)5.频繁FGC的案例(YGC存活对象S区放不下)6.问题汇总1.JVM GC导致系统突然卡死无法访问(1)基于JVM运行的系统最怕什么(2)新生代GC多久一次才对系统影响不大(3)什么时候新生代GC对系
大纲1.G1垃圾回收器的工作原理2.G1分代回收原理—性能为何比传统GC好3.使用G1垃圾回收器时应如何设置参数4.如何基于G1垃圾回收器优化性能5.问题汇总1.G1垃圾回收器的工作原理(1)ParNew + CMS的组合有哪些痛点(2)G1垃圾回收器(3)G1如何实现垃圾回收的停顿时间是可控的(4)Region可能属于新生代也可能属于老年代(1)ParNew + CMS的组合有哪些痛点Stop
大纲1.JVM的新生代垃圾回收器ParNew如何工作2.JVM老年代垃圾回收器CMS是如何工作的3.线上部署系统时如何设置垃圾回收相关参数4.新生代垃圾回收参数如何优化5.老年代的垃圾回收参数如何优化6.问题汇总1.JVM的新生代垃圾回收器ParNew如何工作(1)JVM的核心运行原理梳理点(2)最常用的新生代垃圾回收器——ParNew(3)如何为线上系统指定使用ParNew垃圾回收器(4)Par
大纲1.JVM内存中的对象何时会被垃圾回收2.JVM中的垃圾回收算法及各算法的优劣3.新生代和老年代的垃圾回收算法4.避免本应进入S区的对象直接升入老年代5.Stop the World问题分析6.JVM垃圾回收的原理核心流程7.问题汇总1.JVM内存中的对象何时会被垃圾回收(1)什么时候会触发垃圾回收(2)被哪些变量引用的对象是不能回收的(3)Java中的对象有不同的引用类型(4)finaliz
大纲1.JVM内存划分的原理细节2.对象在JVM内存中如何分配如何流转3.部署线上系统时如何设置JVM内存大小4.如何设置JVM堆内存大小5.如何设置JVM栈内存与永久代大小6.问题汇总1.JVM内存划分的原理细节(1)背景引入(2)大部分对象的存活周期都是极短的(3)少数对象是长期存活的(4)JVM分代模型:新生代和老年代(5)为什么要分成新生代和老年代(6)什么是永久代(1)背景引入接下来介绍
大纲1.Java代码到底是如何运行起来的2.JVM类加载机制的一系列概念3.JVM中有哪些内存区域及各自的作用4.JVM的垃圾回收机制的作用5.问题汇总1.Java代码到底是如何运行起来的(1)首先假设写好了一个Java系统(2)把.java代码文件编译成.class字节码文件(3)启动JVM进程运行.class字节码文件(4)类加载器加载字节码文件到JVM(5)JVM会基于字节码执行引擎来执行加
大纲1.Class文件结构2.Class文件格式概述3.Class文件格式详解4.字节码指令5.类的生命周期和初始化6.类加载的全过程7.类加载器8.双亲委派模型9.栈桢详解11.方法调用详解12.基于栈的字节码解释执行引擎1.Class文件结构(1)Java跨平台的基础字节码是各种不同平台虚拟机与所有平台都能统一使用的程序存储格式,所以字节码(ByteCode)是构成平台无关性的基石,是语言无关
大纲1.垃圾回收概述2.如何判断对象存活3.各种引用介绍4.垃圾收集的算法5.垃圾收集器的设计6.垃圾回收器列表7.各种垃圾回收器详情8.Stop The World现象9.内存分配与回收策略10.新生代不同配置演示11.内存泄漏和内存溢出12.JDK为提供的工具1.垃圾回收概述2.如何判断对象存活(1)引用计数算法(2)可达性分析算法(1)引用计数算法给对象添加一个引用计数器,每当一个地方引用它
大纲1.运行时数据区的介绍2.运行时数据区各区域的作用3.各个版本内存区域的变化4.直接内存的使用和作用5.站在线程的角度看Java内存区域6.深入分析堆和栈的区别7.方法的出入栈和栈上分配、逃逸分析及TLAB8.虚拟机中的对象创建步骤9.对象的内存布局10.对象的访问定位11.堆参数设置和内存溢出示例1.运行时数据区的介绍(1)运行时数据区的定义(2)运行时数据区的类型(3)运行时数据区的展示图
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号