glibc 和 Linux 透明大页会在 JVM 之外额外放大内存占用:
glibc ptmalloc 的影响:
- Arena 机制:每个线程维护 64MB Arena,多线程场景下易产生内存片段。
- Top Chunk 管理:内存空洞导致无法及时归还 OS。
- Bins 缓存策略:JVM 释放的内存暂存于 bins 中,造成统计偏差——进程看似占用很多内存但 JVM 已释放。
Linux 透明大页(THP)的影响:
OS 会将 4KB 页变成 2MB 大页以减少 TLB miss 和缺页中断。但如果应用申请了 2MB 虚拟内存却只用了 4KB,OS 仍然分配一个 2MB 的物理页,造成显著的内存浪费。
这两个因素都不在 JVM 监控范围内,却会直接反映在容器 cgroup 内存统计中,进而触发 OOMKilled。




