Java 应用内存不断增长

2024-01-12 08:43:15 +08:00
 zx9481

启动参数如下

java -server -Xms2048m -Xmx2048m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/xxx/heapError -jar xxx.jar --spring.profiles.active=prod --server.port=9551

项目启动一周后内存就已经 2.6g 了。。。也没有出现过 oom 异常,请教大家应该如何排查解决呢?

10827 次点击
所在节点    Java
64 条回复
miniliuke
2024-01-12 08:45:30 +08:00
堆 dump 看看
twofox
2024-01-12 08:46:27 +08:00
dump 下来去分析内存
zed1018
2024-01-12 08:48:52 +08:00
找算命先生测算一下
cxshun
2024-01-12 08:56:24 +08:00
超出堆内存大小,应该就是堆外内存的问题了。用上面兄弟的 jmap dump 出来看看。但要注意会触发 FGC 。
me1onsoda
2024-01-12 08:59:41 +08:00
xmx 限制了,那就是堆外泄露了呗
visper
2024-01-12 09:09:31 +08:00
没挂能跑就行,管它呢。配置的 Xmx 只是堆内存大小,jvm 自己使用的内存,文件句柄啊,线程本身内存啊的都不在这里。
dengji85
2024-01-12 09:09:40 +08:00
蹲一下解决方案,我有个开发的应用也是这样,时间越长内存越高,慢慢稳定在约束的最大内存,永远不会自动是释放内存,推测是写代码习惯问题,导致对象得不到释放
cnzjl
2024-01-12 09:14:19 +08:00
arthas 在线看一下内存占用情况
halov
2024-01-12 09:14:34 +08:00
我们公司现在使用 消息中间件 nats 也有这种问题 😅
cheng6563
2024-01-12 09:24:13 +08:00
管他呢,搞个定时重启完事
chenPiMeiHaoChi
2024-01-12 09:26:18 +08:00
查查有没有静态的集合,一般这种稳定增长的就是静态 map 或者 list 越来越大。不过我也建议写个定时重启算了。
timeisweapon
2024-01-12 09:29:34 +08:00
这个得看你的项目有多大,小项目内存持续增大,大概率是代码问题,没有及时释放内存,需要看 dump
wxw752
2024-01-12 09:33:56 +08:00
巧了,我写的其中一个 netty 也是这样,后来实在找不到问题了,每两个月重启一下
salmon5
2024-01-12 09:37:12 +08:00
每天重启下就好了,java 就这样的
jorneyr
2024-01-12 09:49:24 +08:00
@wxw752 巧了,我写的其中一个 netty 也是这样,后来实在找不到问题了,每两个月重启一下

Netty 大量使用了堆外内存。
kaedea
2024-01-12 09:51:37 +08:00
hprof
salmon5
2024-01-12 09:53:45 +08:00
启动参数加上-XX:NativeMemoryTracking=summary ,然后 jcmd pid VM.native_memory 分析下
Shinu
2024-01-12 09:55:24 +08:00
巧了, 我也遇到过这个问题, 不过增长的慢, 离职了都没想着去解决这个问题. 蹲下排查方法
starlin
2024-01-12 09:57:45 +08:00
别理解错了,xmx 只限制了堆的最大值,还有非堆,线程栈,代码缓存,jvm 本身运行所需要的内存等,如有必要可以配置 NMT 进行分析,但是注意有性能损耗
676529483
2024-01-12 09:57:54 +08:00
mark 等个大佬,公司项目也是,看 arms 堆内存+非堆不到占用的内存,怀疑堆外又没办法排查,最后只能重启

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1007983

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX