JVM内存回收-实战
2021-03-08 15:57:12 4 举报
JVM内存回收-实战
作者其他创作
大纲/内容
每次一万条数据10mb
一分钟后
S2区100m
S1区100m
Old1.4g(占)100m(空)
Old200m(占)1.3g(空)
一条数据1KB
Eden1.2g
Old1.5g(空)
Eden1.2g(满)
大概在第八分钟运行结束的时候,新生代又满了,执行young GC前进行检查,发现老年代只有100m可用内存,比每次young GC后进入老年代的200m要小,此时触发Full GC。
第八分钟
每个任务一万条数据需要10秒钟计算,假设一分钟内80个任务结束了,还有20个任务在计算中,最后就是200m对象是存活的,不能被垃圾回收掉。
Old1.5g
项目背景:一个分布式数据处理系统,不停的通过SQL语句和其他方式从各种数据存储中提取数据到内存中来进行计算。每台机器每分钟执行100次数据提取, 每个提取1万条左右的数据到内存中,平均每次大概执行10秒左右的时间,部署在4核8G的配置。其中JVM内存给了4G,young 1.5G 、old 1.5G、eden 1.2G、S1区100m、S2区100m。分析该系统存在的问题,并给你优化方案。
基本上平均七八分钟一次Full太频繁了,需要优化。
收藏
收藏
0 条评论
下一页
为你推荐
查看更多