Skip to content

Instantly share code, notes, and snippets.

@eldaroid
Created April 8, 2026 10:22
Show Gist options
  • Select an option

  • Save eldaroid/d8d952fd3944d2102970421d0135cfd4 to your computer and use it in GitHub Desktop.

Select an option

Save eldaroid/d8d952fd3944d2102970421d0135cfd4 to your computer and use it in GitHub Desktop.
RU: Снятие JFR и Heap Dump через kubectl CLI. Пошаговая инструкция по сбору диагностических дампов Java-приложения в Kubernetes; EN: : Capturing JFR and Heap Dumps via the kubectl CLI: A Step-by-Step Guide to Collecting Diagnostic Dumps for Java Applications in Kubernetes

Задача: Снять jfr/dump Java-приложения через kubectl cli команду терминала.

Дополнительно процесс описан в ITWiki

1) логинимся  

kubectl login https://...:443

2) выбираем нужный неймспейс

kubectl config set-context --current --namespace <NAME>

3) подключиться к терминалу POD

kubectl exec -it <SERVICE_NAME>-<ID_POD> -- /bin/bash

4) номер PID процесса: узнать его можно через команду jcm

jcmd

5) снимаем heap_dump (после jcmd идет номер PID процесса)

jcmd <PID> GC.heap_dump /tmp/heapdump.hprof

6) выходит из терминала ПОДы 

exit

7) сохраняем в папку на BPM (где находится kubectl)

kubectl cp <SERVICE_NAME>-<ID_POD>:/tmp/heapdump.hprof ./<SERVICE_NAME>-<ID_POD>.hprof

-- Снимаем JFR (опционально)
8) запустить запись JFR (после jcmd идет номер PID процесса, узнать его можно набрав команду jcmd)

jcmd <PID> JFR.start filename=/tmp/<SERVICE_NAME>-<ID_POD>.jfr duration=5m maxsize=250m

9) проверка состояния записи

jcmd <PID> JFR.check

10) выходим из терминала поды после 5 минут

exit

11) сохраняем в папку на BPM (где находится kubectl)

kubectl cp <SERVICE_NAME>-<ID_POD>:/tmp/<SERVICE_NAME>-<ID_POD>.jfr ./<SERVICE_NAME>-<ID_POD>.jfr
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment