马士兵JVM


image
image
image
image
image

根可达算法
image
image
image
三色标记算法

堆的参数配置
-XX:+PrintGC 每次触发GC的时候打印相关日志
-XX:+UseSerialGC 串行回收
-XX:+PrintGCDetails 更详细的GC日志
-Xms 堆初始值
-Xmx 堆最大可用值
-Xmn 新生代堆最大可用值
-XX:SurvivorRatio 用来设置新生代中eden空间和from/to空间的比例.
含以-XX:SurvivorRatio=eden/from=den/to
总结:在实际工作中,我们可以直接将初始的堆大小与最大堆大小相等,
这样的好处是可以减少程序运行时垃圾回收次数,从而提高效率。
-XX:SurvivorRatio 用来设置新生代中eden空间和from/to空间的比例.

-XX:NewRatio=2设置新生与老年代代参数

年轻代和年老代将根据默认的比例(1:2)分配堆内存,可以通过调整二者之间的比率NewRadio来调整二者之间的大小,也可以针对回收代,比如年轻代,通过 -XX:newSize -XX:MaxNewSize来设置其绝对大小。同样,为了防止年轻代的堆收缩,我们通常会把-XX:newSize -XX:MaxNewSize设置为同样大小

定位OOM

查看进行中java进程

jps

进程详细信息 -xxx进程号

jinfo -xxx

进程栈信息 -xxx进程号

jstack -xxx

前20行进程使用类的内存情况

jmap -histo -xxx | head -20

查看内存情况

jstat -gc -XXX
image

导出堆离线分析

jmap -dump:format=b,file=20201108.hprof 2017

b二进制 20201108任意文件名开头 2017进程号

分析工具

MAT Jprofiler jvisualvm

线上工具

Arthas

dashboard 仪表盘

image

thread 查询所有线程

thread -b 查询死锁线程

jad 包名.类名 线上反编译,查看动态代理类或其他类信息

redefine /root/TT.class 重定义类实现热部署

大文件dump情况

日志分析+活的线程jmap分析

分布式全链路压测

trace 类命 方法名
trace ABC a
image

posted @   8023渡劫  阅读(112)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示