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)视图,识别内存瓶颈的关键对象。

相关推荐
zhaotiannuo_19988 小时前
渗透测试之docker
运维·docker·容器
Light608 小时前
破局而立:制造业软件企业的模式重构与AI赋能新路径
人工智能·云原生·工业软件·商业模式创新·ai赋能·人机协同·制造业软件
三不原则8 小时前
故障案例:容器启动失败排查(AI运维场景)——从日志分析到根因定位
运维·人工智能·kubernetes
孤岛悬城9 小时前
54 安装k8s-1.20.11
云原生·容器·kubernetes
ELI_He99913 小时前
Airflow docker 部署
运维·docker·容器
dmonstererer13 小时前
【k8s设置污点/容忍】
java·容器·kubernetes
Serverless社区14 小时前
AgentRun 实战:快速构建 AI 舆情实时分析专家
阿里云·云原生·serverless·函数计算
slient_love14 小时前
docker和docker compose部署安装
docker·容器
钱彬 (Qian Bin)15 小时前
项目实践14—全球证件智能识别系统(切换回SQLite数据库并基于Docker实现离线部署和日常管理)
运维·docker·容器·fastapi·证件识别
sld16815 小时前
打破云服务“绑定”局限,打造高适配性、强管控力的混合云架构新范式
微服务·云原生·架构