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垃圾回收算法

标记清除

复制算法

标记整理压缩

分代收集

相关推荐
想用offer打牌2 小时前
一站式了解接口防刷(限流)的基本操作
java·后端·架构
何中应2 小时前
RabbitMQ安装及简单使用
分布式·后端·消息队列
何中应2 小时前
使用Python统计小说语言描写的字数
后端·python
何中应2 小时前
SpringAMQP消息转化器
分布式·后端·消息队列
等....7 小时前
MobaXterm操作虚拟机
后端
笨蛋不要掉眼泪8 小时前
Sentinel 流控规则详解:三种模式与三种效果实战指南
java·jvm·数据库·后端·sentinel
健康平安的活着9 小时前
AI之Toolcalling的使用案例(langchain4j+springboot)
人工智能·spring boot·后端
PythonFun9 小时前
HAProxy端口转发入门:从“搬砖工”到“智能交通警察”
服务器·后端·网络安全
Ama_tor9 小时前
Flask |零基础进阶(上)
后端·python·flask