[内存异常排查求助]

141 天前
 ffw5b7
堆内外与 RES 使用不一致,RES 过大,差异的内存使用在哪?什么内容,怎么产生。
下面是对比图 2 张。
https://imgur.com/a/jNq0D6X
1731 次点击
所在节点    Java
7 条回复
ala2008
141 天前
能不能 java dump 然后 Eclipse Memory Analyzer 看下,很清晰的
ffw5b7
141 天前
dump 下来是 gc 过的,很小只有 70m ,分析都是类加载器相关的
@ala2008
lwq84510
141 天前
这个我觉得无解(也可能是我不会),JVM 申请的内存, 就算 GC 后也不返还给系统,所以申请了多大就占了多大
zizon
141 天前
堆内堆外只是相对于 jvm runtime 而言提供给你的 application 层面的内存统计占用.
其他的还包括 jvm/runtime 自身的一些开销.诸如线程栈,读些文件过程中的 page cache 之类的 os 层面的 整个进程 在 os 层面 的内存使用.

你纠结后者的话应该用 perf 去看.
ffw5b7
141 天前
JVM 进程的总内存使用 = JVM Heap (堆)+ Thread Stack (线程栈)+ Metaspace (元空间)+ Code Cache (代码缓存)+ OS 层面的 Page Cache + mmap (直接内存/NIO )+ 共享库/动态库 + 线程调度相关开销。


靠后面的好难排查。
litchinn
141 天前
pidstat 看看
ffw5b7
125 天前
结贴,是 logback 异步写日志的问题。
没外网,
本地安装 aarch64 架构环境,安装 gcc 环境,安装 gperftools,验证步骤。
导出 rpm 包离线安装压测环境。
排查...
目前是 1.2.7 版本,1.3.x 优化了,但是 SpringBoot2.7 不支持。
于是目前方案禁止使用 mmap 。
可以参考 https://heapdump.cn/monographic/detail/46/4861299

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

https://ex.noerr.eu.org/t/1119251

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

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

© 2021 V2EX