线上 OutOfMemoryError 了,没头绪... ...

2020-05-07 12:36:54 +08:00
 Solace202

这是我第一次碰到 OOM,我不理解的是为什么我看 jvm.heap 里面,堆内存使用率不是百分百,但请求依然是 OOM 呢?这些堆栈文件是运维用脚本生成的,必要的话我可以把脚本贴上来。

我会继续排查问题,希望哪位看到了也能帮我瞅瞅,非常感谢。

6920 次点击
所在节点    Java
47 条回复
clino
2020-05-07 20:49:20 +08:00
不一定内存哦,什么用户最大进程数都可能会出的
所以也要去看一下 syslog kernel log 之类的
luozic
2020-05-07 23:42:05 +08:00
jdk 6 ? 可以试试 jprofiler, 免费的有阿里的 https://github.com/alibaba/arthas/blob/master/README_CN.md ,还有个唯品会的工具,这两个工具也可以出图来分析。
并且现在新版本的 jdk 6 也支持 gc1 了
zinan
2020-05-08 01:14:36 +08:00
就是永久代满了吧, 1.8 以下永久代就是放在 heap 中管理的, 永久代在 full gc 中不会清理. 反射调用有可能会触发类加载的行为, 永久代放不下就会报 oom 了
heyhumor
2020-05-08 08:13:22 +08:00
V 站摸鱼的大佬还是不少啊[滑稽]
hand515
2020-05-08 08:30:32 +08:00
@Solace202 #14 我是第一次见,正常一个 JVM 进程只会有一个 Old GC 算法
youngs
2020-05-08 10:26:22 +08:00
@Livid 我们之前生产用过,Sentry 会导致 OOM 么?
Livid
2020-05-08 12:01:55 +08:00
@youngs 用 Sentry 的意义就是如果出现了这类问题,可以获得当时的完整场景。

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

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

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

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

© 2021 V2EX