JVM面试题

1. 背景

储备足够多的知识是解决JVM调优的必要条件,努力掌握每一次机会,不断地去尝试,才能提高自己的水平

2. 面试题记录

2.1. 解释#年轻代垃圾回收机制

-Xms3G , -Xmx3G, -Xmn1G, -XX:SurvivorRatio=8 -XX:PrintGCDetails, -verbose:gc
eden区发生minor gc的时候有95% 以上的对象是垃圾对象

2.2 JVM调优

现象: TP99耗时偏高,有明显的毛刺,发现YGC和FGC频繁
解决: 频繁的YGC导致本该在YGC就被回收的对象进入了老年代,也导致了老年代继续触发FGC,频繁的STW,导致TP99偏高
优化目标:减少YGC的次数和耗时,减少FGC的次数和耗时

  1. 放大年轻代
  2. 元数据区的默认初始值只有21M,如果动态代理对象比较多,就会导致元空间进行FGC,导致STW,观察了一下元空间常住对象的大小,大概100M,直接指定元空间和最大容量为256M,防止动态调整
  3. 使用并发预清理

2.3 jvm垃圾回收算法

标记清除

复制算法

标记整理压缩

分代收集

相关推荐
大象席地抽烟16 小时前
使用 Ollama 本地模型与 Spring AI Alibaba
后端
程序员小假16 小时前
SQL 语句左连接右连接内连接如何使用,区别是什么?
java·后端
小坏讲微服务16 小时前
Spring Cloud Alibaba Gateway 集成 Redis 限流的完整配置
数据库·redis·分布式·后端·spring cloud·架构·gateway
方圆想当图灵17 小时前
Nacos 源码深度畅游:Nacos 配置同步详解(下)
分布式·后端·github
方圆想当图灵17 小时前
Nacos 源码深度畅游:Nacos 配置同步详解(上)
分布式·后端·github
小羊失眠啦.17 小时前
用 Rust 实现高性能并发下载器:从原理到实战
开发语言·后端·rust
Filotimo_18 小时前
SpringBoot3入门
java·spring boot·后端
一 乐18 小时前
校园墙|校园社区|基于Java+vue的校园墙小程序系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端·小程序
golang学习记19 小时前
🍵 Go Queryx 入门指南:让数据库操作像喝奶茶一样丝滑!
后端
z_鑫19 小时前
Java线程池原理深度解析
java·开发语言·后端