最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker容器使用Arthas監(jiān)控Java應用的完整指南

 更新時間:2025年08月22日 08:45:35   作者:荔枝愛編程  
這篇文章主要為大家詳細介紹了如何在運行中的 Docker 容器里,為目標 Java 進程快速注入 Arthas 并進行線上診斷,感興趣的小伙伴可以了解一下

為什么要這么做

  • Arthas 支持 JDK 11 及以上版本,本身并不存在“無法直接跟蹤 JDK 11”的問題;問題的根因常出現(xiàn)在容器基礎鏡像過于精簡。
  • 從 JDK 9 起工具布局與模塊化發(fā)生變化,而許多瘦身鏡像(如 openjdk:*?slim、alpine 變體)常不包含 jcmd 等診斷工具,也沒有隨鏡像提供 jattach,導致無法直接對 JVM 執(zhí)行動態(tài) attach;安裝完整 JDK 或額外安裝 jattach 后即可恢復能力。
  • 另一個高頻問題是“運行 Arthas 的 Java 與目標 JVM 版本不一致”會導致 attach 失敗或不穩(wěn)定,建議使用與目標進程一致或相近版本的 JDK 來運行 arthas?boot。

本文演示如何在運行中的 Docker 容器里,為目標 Java 進程快速注入 Arthas 并進行線上診斷。

步驟 1:進入容器并安裝必要工具

# 進入正在運行的容器
docker exec -it xxx /bin/sh

# 安裝 jattach (用于將 Arthas Agent 注入到目標 JVM)
apk add --no-cache jattach

# 安裝 JDK (解決 tools.jar 缺失問題,非常重要!)
apk add --no-cache openjdk11-jdk

# 安裝網(wǎng)絡工具 (用于后續(xù)排查和驗證)
apk add --no-cache net-tools iproute2

步驟 2:下載 Arthas

# 下載 arthas-boot.jar
wget https://arthas.aliyun.com/arthas-boot.jar

步驟 3:確認目標 Java 進程 PID

# 查看 Java 進程,確認 PID(通常為 1)
ps -ef | grep java

會看到類似輸出:

1 root 9:33 java -Xms512m ... -jar tiji-risk-prevention.jar

記下 PID,這里是 1。

步驟 4:將 Arthas Agent 注入到目標 JVM

# 使用 jattach 將 Arthas Agent 加載到 PID 為 1 的 Java 進程中
jattach 1 load instrument false /root/.arthas/lib/4.0.5/arthas/arthas-agent.jar

注意:如果 /root/.arthas/ 目錄不存在,先運行一次 java -jar arthas-boot.jar 1 來觸發(fā) Arthas 的自動下載和解壓。

步驟 5:手動啟動 Arthas 核心服務(關鍵步驟)

這一步是解決會遇到的 Connection refused 問題的關鍵:

# 手動啟動 Arthas Core 服務,監(jiān)聽 telnet 和 HTTP 端口
java -cp /root/.arthas/lib/4.0.5/arthas/arthas-core.jar \
     com.taobao.arthas.core.Arthas \
     --telnet-port 3658 \
     --http-port 3659 \
     --ip 127.0.0.1 \  # 或者使用 --ip 0.0.0.0 以允許外部訪問
     --pid 1 &

注意:使用 & 讓它在后臺運行。

步驟 6:驗證 Arthas 是否成功啟動

# 檢查 3658 端口是否在監(jiān)聽
netstat -tlnp | grep 3658

你應該看到類似輸出:

tcp6 0 0 127.0.0.1:3658 :::* LISTEN 1/java

步驟 7:連接到 Arthas

現(xiàn)在你可以通過以下任一方式連接:

方式一:使用 arthas-boot.jar (推薦)

# 再次運行 arthas-boot.jar,它會檢測到端口已監(jiān)聽并直接連接
java -jar arthas-boot.jar 1

步驟 8:開始使用 Arthas 進行診斷

連接成功后,你會看到 Arthas 的歡迎界面:

  ,---.  ,------. ,--------.,--.  ,--.  ,---.   ,---.                           
 /  O  \ |  .--. ''--.  .--'|  '--'  | /  O  \ '   .-'                          
|  .-.  ||  '--'.'   |  |   |  .--.  ||  .-.  |`.  `-.                          
|  | |  ||  |\  \    |  |   |  |  |  ||  | |  |.-'    |                         
`--' `--'`--' '--'   `--'   `--'  `--'`--' `--'`-----'                          

wiki        https://arthas.aliyun.com/doc                                         
tutorials   https://arthas.aliyun.com/doc/arthas-tutorials.html                   
version     4.0.5                                                               
...
[arthas@1]$

現(xiàn)在你就可以使用 Arthas 命令來監(jiān)控你的方法了,例如:

# 查找方法
sm *getPatrolTaskTrack*

# 跟蹤方法執(zhí)行耗時
trace com.yourcompany.service.YourClass getPatrolTaskTrack

# 監(jiān)控方法調用統(tǒng)計
monitor com.yourcompany.service.YourClass getPatrolTaskTrack

# 查看方法調用堆棧
stack com.yourcompany.service.YourClass getPatrolTaskTrack

清理

# 可按需刪除臨時文件與解壓目錄(路徑因實際解壓位置而異)
rm -f /tmp/arthas-boot.jar
# Arthas 解壓目錄一般位于 ~/.arthas 或 /root/.arthas
rm -rf ~/.arthas || true

參考

Arthas 官方站點與使用指南:arthas.aliyun.com

到此這篇關于Docker容器使用Arthas監(jiān)控Java應用的完整指南的文章就介紹到這了,更多相關Docker Arthas監(jiān)控Java應用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Docker-CE安裝的兩種實現(xiàn)方式

    Docker-CE安裝的兩種實現(xiàn)方式

    文章指導如何卸載失敗安裝的Docker,并提供兩種安裝方式:官方腳本一鍵安裝與手動安裝Docker CE,步驟涵蓋更新系統(tǒng)、添加密鑰和倉庫、安裝組件、啟動服務及驗證安裝
    2025-09-09
  • Docker Compose詳細介紹

    Docker Compose詳細介紹

    Docker Compose是一個用于定義和運行多個Docker容器的工具。它可以讓用戶輕松地定義和管理多個容器的配置,并且可以通過簡單的命令來啟動、停止和重啟這些容器。在本文中,我們將詳細介紹Docker Compose的使用和功能
    2023-04-04
  • Docker容器鏡像工具使用示例詳解(拉取、構建、管理、優(yōu)化)

    Docker容器鏡像工具使用示例詳解(拉取、構建、管理、優(yōu)化)

    本文詳細介紹了Docker鏡像的操作方法,包括獲取、列出、運行、刪除、保存鏡像以及鏡像的導出和導入,每個操作都提供了具體的命令和示例,旨在幫助用戶高效管理Docker鏡像,需要的朋友可以參考下
    2025-07-07
  • Docker數(shù)據(jù)卷的核心原理與管理邏輯解讀

    Docker數(shù)據(jù)卷的核心原理與管理邏輯解讀

    Docker數(shù)據(jù)卷實現(xiàn)容器與宿主機的數(shù)據(jù)持久化,分為綁定掛載(手動指定路徑)和管理卷(自動管理),前者適合開發(fā)環(huán)境,后者適用于生產(chǎn)環(huán)境,還支持多容器共享、備份遷移及清理,保障數(shù)據(jù)安全與資源高效利用
    2025-08-08
  • Docker容器項目無法訪問MySQL的問題排查與解決策略

    Docker容器項目無法訪問MySQL的問題排查與解決策略

    本文分析了Docker容器連接MySQL時常見的問題,并提供了解決方案,主要問題包括網(wǎng)絡隔離、服務啟動順序、權限配置等,解決方案包括使用自定義網(wǎng)絡、連接宿主機MySQL、健康檢查與啟動等待、端口映射與防火墻配置、MySQL權限配置和Host網(wǎng)絡模式等,需要的朋友可以參考下
    2026-04-04
  • 阿里云鏡像安裝docker報錯的問題及解決方案

    阿里云鏡像安裝docker報錯的問題及解決方案

    這篇文章主要介紹了阿里云鏡像安裝docker報錯的問題及解決方案,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • gitlab-runner中搭建nvm、nrm以及優(yōu)化maven打包方式

    gitlab-runner中搭建nvm、nrm以及優(yōu)化maven打包方式

    文章描述了如何在GitLab Runner上配置NVM、NRM,并優(yōu)化Maven打包過程,通過上述配置和優(yōu)化,作者將Maven打包時間從三分鐘縮短到不到40秒
    2024-11-11
  • 詳解使用Docker容器來源碼編譯etcd

    詳解使用Docker容器來源碼編譯etcd

    這篇文章主要介紹了詳解使用Docker容器來源碼編譯etcd,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • docker容器設置時區(qū)的幾種方式小結

    docker容器設置時區(qū)的幾種方式小結

    Docker的基礎鏡像設置大多是Etc/UTC,也就是標準的UTC 時間,所以要簡單的調整一下,本文主要介紹了docker容器設置時區(qū)的幾種方式小結,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • Docker圖形工具Portainer的具體使用

    Docker圖形工具Portainer的具體使用

    本文主要介紹了Docker圖形工具Portainer的具體使用,Portainer是一個開源的輕量級管理UI,提供了一個直觀的圖形用戶界面,使得管理Docker容器變得更加容易,感興趣的可以了解一下
    2024-11-11

最新評論

昭觉县| 尼玛县| 临澧县| 城市| 平阳县| 巢湖市| 元阳县| 山阳县| 米脂县| 三明市| 汶上县| 湘乡市| 九龙城区| 府谷县| 喀喇沁旗| 高碑店市| 朝阳市| 长治县| 台山市| 临澧县| 鄄城县| 怀化市| 曲阳县| 米林县| 福泉市| 吉林市| 昆明市| 凌云县| 津南区| 普兰县| 麟游县| 阿拉善盟| 蒲城县| 宝鸡市| 南京市| 繁峙县| 长丰县| 高青县| 阳高县| 阿坝县| 册亨县|