1
ala2008 37 天前
能不能 java dump 然后 Eclipse Memory Analyzer 看下,很清晰的
|
![]() |
3
lwq84510 37 天前
这个我觉得无解(也可能是我不会),JVM 申请的内存, 就算 GC 后也不返还给系统,所以申请了多大就占了多大
|
![]() |
4
zizon 37 天前 ![]() 堆内堆外只是相对于 jvm runtime 而言提供给你的 application 层面的内存统计占用.
其他的还包括 jvm/runtime 自身的一些开销.诸如线程栈,读些文件过程中的 page cache 之类的 os 层面的 整个进程 在 os 层面 的内存使用. 你纠结后者的话应该用 perf 去看. |
5
ffw5b7 OP JVM 进程的总内存使用 = JVM Heap (堆)+ Thread Stack (线程栈)+ Metaspace (元空间)+ Code Cache (代码缓存)+ OS 层面的 Page Cache + mmap (直接内存/NIO )+ 共享库/动态库 + 线程调度相关开销。
靠后面的好难排查。 |
![]() |
6
litchinn 37 天前
pidstat 看看
|
7
ffw5b7 OP 结贴,是 logback 异步写日志的问题。
没外网, 本地安装 aarch64 架构环境,安装 gcc 环境,安装 gperftools,验证步骤。 导出 rpm 包离线安装压测环境。 排查... 目前是 1.2.7 版本,1.3.x 优化了,但是 SpringBoot2.7 不支持。 于是目前方案禁止使用 mmap 。 可以参考 https://heapdump.cn/monographic/detail/46/4861299 |