如何从Kubernetes(k8s)的Pod获取堆转储?

huangapple go评论79阅读模式
英文:

How to get a heap dump from Kubernetes k8s pod?

问题

请提供一个简单的逐步指南,以查看来自Kubernetes pod的Java堆转储(heap dump)。

英文:

Please provide a simple step by step guide to looking into java heap dump from a Kubernetes pod.

答案1

得分: 24

  1. 登录到 K8S 并进入运行你的 Java 应用程序的 Pods。
kubectl exec -it herle-deployment-pod-5757d89d85-wrpc9 bash
  1. 获取进程 ID(使用 top 命令)。

  2. 创建 Java 堆转储文件。

jmap -dump:live,format=b,file=<file_name>.bin <process_id>

示例:

jmap -dump:live,format=b,file=application_heap_dump.bin 1
  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
  1. 使用任何内存泄漏分析工具。我正在使用 Eclipse 的 Memory Analyzer 插件。

    • 打开堆转储文件

    如何从Kubernetes(k8s)的Pod获取堆转储?

    • 选择泄漏嫌疑报告

    如何从Kubernetes(k8s)的Pod获取堆转储?

    • 您可以检查对象数量和保留的堆空间,还有一些可能的泄漏嫌疑。
英文:
  1. Log in to the K8S and exec into the Pods where your java application is running.
kubectl exec -it herle-deployment-pod-5757d89d85-wrpc9 bash
  1. get the process id (top command)

  2. Create java heap dump

jmap -dump:live,format=b,file=&lt;file_name&gt;.bin &lt;process_id&gt;

Example:

jmap -dump:live,format=b,file=application_heap_dump.bin 1
  1. Copy the heap dump from pod to your local machine.
kubectl cp &lt;pod_name&gt;:&lt;heap_file&gt; &lt;your local destination directory&gt;

Example:

kubectl cp herle-deployment-pod-5757d89d85-wrpc9:/tmp/application_heap_dump.bin /Users/amritharajherle/Desktop/application_heap_dump.bin
  1. Use any memory leak analysis tool. I'm using the Eclipse's Memory Analyzer plugin.
  • Open the heap dump file

如何从Kubernetes(k8s)的Pod获取堆转储?

  • select leak suspect report

如何从Kubernetes(k8s)的Pod获取堆转储?

  • You can check the number of objects and retained heap space. Also some possible leak suspects.

huangapple
  • 本文由 发表于 2020年9月29日 22:40:03
  • 转载请务必保留本文链接:https://go.coder-hub.com/64121941.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定