K8S容器POD内存快照导出分析处理方案

1. 获取K8S容器POD内存快照

复制代码
# 进入k8s pod
kubectl  exec  -it   POD_NAME   -n  POD_NAMESPACE  --   /bin/sh

# 获取java进程PID
ps   -ef  |   grep  java

# 生成堆快照
jmap -dump:live,format=b,file=test_app_heap.hprof  PID

# 查看堆概要
jmap -heap PID

# 统计前10个内存消耗对象
jmap -histo:live  PID | head -n 10

# 复制pod堆快照文件到宿主机
kubectl   cp  POD_NAMESPACE/POD_NAME:/example_pod/test_app_heap.hprof  test_app_heap.hprof

2. 分析工具

2.1 VisualVM

  1. JDK 自带的图形化工具(建议从官网下载最新版以兼容更多功能)。

  2. 操作步骤:

    ① 打开VisualVM → 点击 File > Load → 选择堆转储文件(如.hprof);

    ② 在 "Heap Dump" 标签页查看整体内存分布(对象数量、占用大小);

    ③ 切换到 "Objects" 视图 → 按占用空间排序(Size降序);

    ④ 选中可疑对象 → 右键 "Show in GC Root Path" → 追踪其GC引用链,定位持有大内存的对象及其引用源。

2.2 Memory Analyzer (MAT)

  1. Eclipse基金会开发的深度内存分析工具(推荐处理大型堆转储)。

  2. 支持检测内存泄漏(如通过 Leak Suspects Report 自动生成泄漏报告);

  3. 提供对象依赖树(Dominator Tree)视图,识别内存瓶颈的关键对象。

相关推荐
云川之下20 小时前
【k8s】NAD(NetworkAttachmentDefinition)与SR‑IOV‑Operator 关系
云原生·容器·kubernetes
ZzzZZzzzZZZzzzz…1 天前
K8S实战:NFS+StorageClass+PV/PVC+Deployment
运维·云原生·容器·kubernetes·storageclass·linux运维·持久卷
三言老师1 天前
CentOS7.9 + Kubernetes 1.18.20 -清理所有 docker / containerd 残留
docker·容器·kubernetes
circuitsosk1 天前
从Docker到Kubernetes:AI应用服务化与弹性伸缩的落地实践
人工智能·docker·kubernetes·ai应用部署
AAA@峥1 天前
K8s 配置管理实战:ConfigMap 与 Secret 完整使用指南
kubernetes·云计算
showyoui1 天前
K8s 集群迁移踩坑:Istio 升级后 nginx 403
网络·docker·kubernetes·istio·service_mesh
海兰1 天前
云原生持续交付平台 Zadig 在 Ubuntu 24.04 上的部署及使用指南
linux·ubuntu·云原生
云川之下1 天前
【k8s】sriov‑device‑plugin、sriov‑network‑config‑daemon详解
云原生·容器·kubernetes
张忠琳2 天前
【NPU】Ascend Device Plugin —Part 6 K8s客户端 + 重复检测模块 超深度源码分析之二
云原生·容器·kubernetes·npu·docker device
雨声不在2 天前
私有 Docker Registry 排障实录:两个隐蔽的坑
docker·容器