当前位置:网站首页>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频率。
边栏推荐
猜你喜欢

Double position relay jdp-1440/dc110v

openresty使用文档

Codeforces Round #802 (Div. 2)

汇编语言-王爽 第8章 数据处理的两个基本问题-笔记

Two position relay rxmvb2 r251 204 110dc

QT using Valgrind to analyze memory leaks

How JQ gets the reciprocal elements

微信小程序WebSocket使用案例
![Mechanical transcoding journal [17] template, STL introduction](/img/78/926db660139fda3d31cceccad7096c.png)
Mechanical transcoding journal [17] template, STL introduction

开门小例子学习十种用例图
随机推荐
Implementation of easyexcel's function of merging cells with the same content and dynamic title
openstack实例重启状态就会变成错误处理方法,容器搭建的openstack重启计算节点compute服务方法,开机提示Give root password for maintenance处理方法
Wechat applet websocket use case
DAST 黑盒漏洞扫描器 第六篇:运营篇(终)
Go log -uber open source library zap use
双位置继电器RXMD2-1MRK001984 DC220V
js实现双向数据绑定
Dual position relay dls-34a dc0.5a 220VDC
程序猿学习抖音短视频制作
Webrtc series - Nomination and ice of 7-ice supplement for network transmission_ Model
多线程基础部分Part 1
My opinion on test team construction
Built in functions of spark
openresty使用文档
函数式 连续式
创建一个基础WDM驱动,并使用MFC调用驱动
Luogu p2939 [usaco09feb]revamping trails G
Unity中跨平台获取系统音量
Navigation [machine learning]
项目-h5列表跳转详情,实现后退不刷新,修改数据则刷新的功能(记录滚动条)