当前位置:网站首页>JVM调优思路
JVM调优思路
2022-06-27 05:57:00 【季风泯灭的季节】
JVM运行情况预估
主要依靠jstat gc -pid 命令统计GC运行情况。如年轻代对象增长速率、Young GC的触发频率和每次耗时、每次Young GC后有多少对象存活和进入老年代、Full GC的触发频率和每次耗时 等。在此信息基础上对jvm参数做出调整。
优化的理论依据
- 对象能在年轻代就被淘汰掉的尽量不让他进入老年代
- 尽量不要触发full GC
触发young GC的条件:
- eden区空间不足
触发full GC的条件:
- 老年代空间不足
- 永久代空间不足
- young GC时 触发了老年代空间分配担保机制。
对象进入老年代的条件(即影响老年代对象增长速率):
- 大对象直接进入老年代
- 大年龄对象进入老年代
- young GC时根据动态年龄判断机制,一次放入Survivor的对象大于Survivor区的50%,则多余的对象会放入老年代
full gc比minor gc还多的原因
- 元空间不够导致的多余full gc
- 显示调用System.gc()造成多余的full gc,这种一般线上尽量通过XX:+DisableExplicitGC参数禁用,如果加上了这个JVM启动参数,那么代码中调用System.gc()没有任何效果
- 老年代空间分配担保机制
分析思路
- 首先,根据老年代的对象增长速率,得出理论上发生full GC的频率。用理论频率与实际频率去对比。
- 如果实际频率远比理论频率高,那么根据full gc比minor gc还多的原因分析可能是哪一种原因。如尝试增大元空间大小、禁用System.gc()及避免触发老年代空间分配担保机制。
- 如果实例频率与理论频率相差不多,则说明问题出在老年代对象增长速率上。此时有两种分析思路:
3.1 考虑降低对象进入老年代的速率。用线程分析确定是否有大量的大对象产生,是否在年轻代young GC时触发了动态年龄判断机制使对象进入了老年代。
3.2 考虑增大堆大小,以此降低full GC频率。
边栏推荐
- 310. 最小高度树
- 【QT小作】使用结构体数据生成读写配置文件代码
- 使用 WordPress快速个人建站指南
- Go log -uber open source library zap use
- EasyExcel合并相同内容单元格及动态标题功能的实现
- Jump details of item -h5 list, and realize the function of not refreshing when backing up, and refreshing when modifying data (record scroll bar)
- 爬虫学习5---反反爬之识别图片验证码(ddddocr和pytesseract实测效果)
- 【QT小点】实现看门狗功能,检测外部程序是否在运行
- Neo4j community conflicts with neo4j desktop
- Asp.Net Core6 WebSocket 简单案例
猜你喜欢

Two position relay rxmvb2 r251 204 110dc

Go日志-Uber开源库zap使用

双位置继电器RXMD2-1MRK001984 DC220V

30 SCM common problems and solutions!

LeetCode-515. 在每个树行中找最大值

创建一个基础WDM驱动,并使用MFC调用驱动

爬虫学习5---反反爬之识别图片验证码(ddddocr和pytesseract实测效果)

【FPGA】 基于FPGA分频,倍频设计实现

Nlp-d62-nlp competition d31 & question brushing D15

leetcode298周赛记录
随机推荐
Basic concepts of neo4j graph database
Avoid asteroids
openresty使用文档
DAST 黑盒漏洞扫描器 第六篇:运营篇(终)
QListWidget中的内容不显示
310. minimum height tree
爬虫学习5---反反爬之识别图片验证码(ddddocr和pytesseract实测效果)
竣达技术丨多品牌精密空调集中监控方案
Webrtc series - Nomination and ice of 7-ice supplement for network transmission_ Model
Gao Xiang slam14 lecture - note 1
KubeSphere 集群配置 NFS 存储解决方案-收藏版
免费的 SSH 和 Telnet 客户端PuTTY
Program ape learning Tiktok short video production
Double position relay rxmd2-1mrk001984 dc220v
Senior [Software Test Engineer] learning route and necessary knowledge points
C语言实现定时器
How win 10 opens the environment variables window
js实现双向数据绑定
Spark 之 built-in functions
310. 最小高度树