首頁  >  文章  >  Java  >  取得在 JRE Docker 映像上執行的 Java 容器的執行緒轉儲

取得在 JRE Docker 映像上執行的 Java 容器的執行緒轉儲

Patricia Arquette
Patricia Arquette原創
2024-11-03 22:24:31512瀏覽

給定一個在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn