首页 > Java > java教程 > 获取在 JRE Docker 映像上运行的 Java 容器的线程转储

获取在 JRE Docker 映像上运行的 Java 容器的线程转储

Patricia Arquette
发布: 2024-11-03 22:24:31
原创
577 人浏览过

给定一个在 Kubernetes 集群中使用基于 JRE 的 docker 镜像运行的 web 应用程序,例如:tomcat:9.0-jre11-temurin,那么获取线程转储并不容易,因为基于 JRE 的 docker 镜像不包含 jstack 等工具、jmap...

我们可以使用 jattach 工具来完成我们的任务。太长了; jattach 是 Andrei Pangin 用 C 语言编写的紧凑工具。

首先我们需要将工具下载到容器中:

打开容器中的外壳:

kubectl -n default exec -it your-tomcat-pod -c your-tomcat-container -- bash
登录后复制

将 jattach 下载到工作目录

cd /working-dir

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

chmod +x jattach
登录后复制

从终端创建线程转储并存储在输出文件中

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

然后您可以使用 jstack.review 工具来分析线程转储。

Get thread dump of Java container running on JRE Docker image

以上是获取在 JRE Docker 映像上运行的 Java 容器的线程转储的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板