java - 如何从 Kubernetes k8s pod 获取堆转储?
问题描述
请提供一个简单的分步指南,以从 Kubernetes pod 中查看 Java 堆转储。
解决方案
- 登录到 K8S 并执行到运行您的 Java 应用程序的 Pod。
kubectl exec -it herle-deployment-pod-5757d89d85-wrpc9 bash
获取进程 ID(top 命令)
创建java堆转储
jmap -dump:live,format=b,file=<file_name>.bin <process_id>
例子:
jmap -dump:live,format=b,file=application_heap_dump.bin 1
- 将堆转储从 pod 复制到本地计算机。
kubectl cp <pod_name>:<heap_file> <your local destination directory>
例子:
kubectl cp herle-deployment-pod-5757d89d85-wrpc9:/tmp/application_heap_dump.bin /Users/amritharajherle/Desktop/application_heap_dump.bin
- 使用任何内存泄漏分析工具。我正在使用 Eclipse 的Memory Analyzer插件。
- 打开堆转储文件
- 选择泄漏嫌疑人报告
- 您可以检查对象的数量和保留的堆空间。还有一些可能的泄漏嫌疑人。
推荐阅读
- kubernetes - 在 Kubernetes 上部署多个容器以使用 ZeroMQ PUB/SUB
- odoo-12 - 如何传递 res_id:
- vba - 根据表记录确定文本框的可见性
- alfresco - 有什么方法可以配置二维码扫描并将其数据存储在露天存储库中
- node.js - 如何在 vue 应用中实现 Paypal 订阅?
- android - Android Studio - 分数值必须在 0 到 1 的范围内:3.0
- php - 如何在 PHP 中使用 jquery 验证 'dd/mm/yyyy HH:ii P' 格式的日期时间?
- file - 具有启动延迟的 FileConnector
- ios - 如何以编程方式在 SwipeCellKit 库中取消滑动以删除单元格?
- python-3.x - 什么时候遇到 Python3 中的编码问题?