内存占用过大排查

# 查看gc信息

jstat -gc <PID>
1

gc信息

发现老年代占用过大

# 查看堆内存对象统计信息

jmap -histo <PID> | head -n 20
1

内存对象统计

发现有大量的HashMap$NodeJSONArray对象

# 转储堆内存到文件

jmap -dump:format=b,file=head_dump.hprof <PID>
1

jmap -dump:format=b,file=stock_head_dump_0212_1.hprof 7

# 使用 JProfiler 分析堆内存文件

通过最大对象选项查看占用内存最多的对象

20250115131410

点击该对象右键选择使用选定对象,选择引用->传入引用查看该对象的引用链 20250115131925

根据堆栈信息定位到代码中的问题

上次更新: 2025/02/23, 05:03:32
最近更新
01
G1垃圾收集器的参数调优
02-23
02
docker-compose笔记
01-12
03
MySQL数据迁移
11-27
更多文章>