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

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

Patricia Arquette
發布: 2024-11-03 22:24:31
原創
587 人瀏覽過

給定一個在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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板