记一次内存溢出

戏子无情 提交于 2019-12-10 17:24:51

java应用 内部调用lua处理战斗 几天后线上运行卡顿
lua对象持续增长

线上紧急重启后运行2天的内存信息
对象信息
jmap -histo:live 10342 |grep lua 在这里插入图片描述
内存信息
在这里插入图片描述
G1 jstat、jmap 查看survivor 始终100% 因为和其他垃圾回收器不同的是 sur0 sur1地址不固定

gc信息
在这里插入图片描述

看下当前内存分配
显示配置和G1的默认参数

-Dfile.encoding=UTF-8 -Xms5g -Xmx5g -Xss256K -XX:MaxMetaspaceSize=128m -
XX:CompressedClassSpaceSize=64m -XX:+UseG1GC -XX:ParallelGCThreads=4 -XX:ConcGCThreads=2

在这里插入图片描述
没有问题

dump日志
在这里插入图片描述

Histogram 和jmap histo:live查出来的一致
在这里插入图片描述

猜想:都是luatable的内部类 逻辑中又有很多new luaTable的地方 是不是有泄漏的地方呀

immediate dominator找责任对象
先找他的
在这里插入图片描述

再查table的
在这里插入图片描述

看着并不是

最后发现是lua脚本有问题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!