Maison >Java >javaDidacticiel >Récupérer le thread dump du conteneur Java exécuté sur l'image Docker JRE

Récupérer le thread dump du conteneur Java exécuté sur l'image Docker JRE

Patricia Arquette
Patricia Arquetteoriginal
2024-11-03 22:24:31586parcourir

Étant donné une application Web exécutée avec une image Docker basée sur JRE dans le cluster Kubernetes, exemple : tomcat:9.0-jre11-temurin, il n'est pas facile d'obtenir le thread dump car l'image Docker basée sur JRE n'inclut pas les outils comme jstack , jmap...

Nous pouvons utiliser les outils jattach pour accomplir notre tâche. TLDR ; jattach est un outil compact écrit en C par Andrei Pangin.

Nous devons d'abord télécharger l'outil dans le conteneur :

Ouvrez la coque dans le conteneur :

kubectl -n default exec -it your-tomcat-pod -c your-tomcat-container -- bash

Téléchargez le jattach dans le répertoire de travail

cd /working-dir

curl -L -O https://github.com/apangin/jattach/releases/download/v2.2/jattach 

chmod +x jattach

Depuis votre terminal, créez un thread dump et stockez-le dans le fichier de sortie

kubectl -n default exec your-tomcat-pod \
  -c your-tomcat-container  -- \
  /working-dir/jattach 1 threaddump > thread-dump.txt

Ensuite, vous pouvez utiliser l'outil jstack.review pour analyser le thread dump.

Get thread dump of Java container running on JRE Docker image

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn