推荐关注
哈喽,各位新来的小伙伴们,大家好!由于公众号做了改版,为了保证公众号的资源能准时推送到你手里,大家记得将后端君的公众号 加星标置顶 ,在此真诚的表示感谢~
编辑:后端妹 | 来源:程序员码龙
链接:https://blog.csdn.net/longzhutengyue
上一篇:你了解 SpringBoot 在一次 http 请求中耗费了多少内存吗?
正文
大家好,我是栈哥。
Arthas(阿尔萨斯)——Java 应用的线上诊断“瑞士军刀”
一、什么是 Arthas?
Arthas 是阿里巴巴开源的一款 Java 线上诊断工具,能够在不重启、不修改代码的情况下,实时监控和诊断生产环境中的 Java 应用。
它能帮你解决这些问题:
• 这个类是从哪个 jar 包加载的?为什么报 ClassNotFoundException?• 我改的代码怎么没生效?是不是分支错了? • 线上某个用户请求出错,但无法 debug,日志也不够? • 接口响应慢,到底哪里卡住了? • 如何查看 JVM 实时内存、线程、GC 状态? • 如何生成火焰图定位性能热点? • 怎样从 JVM 内部直接调用方法或获取对象实例?
✅ Arthas 支持 JDK 8+(推荐),支持
Linux/Mac/Windows,采用命令行交互,Tab 补全强大,诊断效率极高。
二、离线安装 Arthas(推荐生产环境使用)
由于生产环境通常禁止外网访问,推荐使用离线方式安装 Arthas。
官方文档:https://arthas.aliyun.com/doc/
步骤 1:下载arthas全量包
下载arthas全量包、安装
浏览器输入网址下载:
https://github.com/alibaba/arthas/releases/download/arthas-all-4.0.5/arthas-bin.zip
或者进入github 地址手动下载
https://github.com/alibaba/arthas/releases

建议使用 v4.0.5 或更高版本(功能更全,支持 pm 命令等)。
步骤 2:将全量压缩包拷贝到目标服务器
scp arthas-bin.zip user@your-server:/opt/arthas/步骤 3:启动 Arthas 并 attach 到目标 Java 进程
cd /opt/arthas/unzip arthas-bin.zipjava -jar /opt/arthas/arthas-boot.jar会列出当前服务器上的 Java 进程,输入对应编号即可 attach。
[INFO] Found existing java process, please choose one:* [1]: 12345 demo.jar [2]: 67890 app.jar1[INFO] Attach success.[arthas@12345]$三、Docker 容器化集成 Arthas(Dockerfile 方式)
将 Arthas 预装进镜像,确保每个容器都具备诊断能力。
目录结构建议
your-project/├── Dockerfile├── pom.xml├── src/│ └── ...└── arthas/ ├── arthas-agent.jar ├── arthas-bin.zip ├── arthas-boot.jar ├── arthas-client.jar ├── arthas-core.jar ├── arthas.properties ├── arthas-spy.jar ├── as.bat ├── as-service.bat ├── as.sh ├── async-profiler/ ├── install-local.sh ├── lib/ ├── logback.xml └── math-game.jarDockerfile 示例
FROM openjdk:8-jdk-alpine# 创建 arthas 目录RUNmkdir -p /opt/arthas# 复制离线 arthas 包COPY ./arthas /opt/arthas/# 复制应用 jarCOPY target/your-app.jar /app.jar# 启动脚本:先启动应用,再 attach arthas(可选自动连接 tunnel)CMD java -jar /app.jar & \sleep 15 && \ java -jar /opt/arthas/arthas-boot.jar --tunnel-server 'ws://tunnel-server:7777/ws' --app-name myapp --telnet-port 3658 --http-port 8563sleep 15 确保应用完全启动后再 attach。
四、Kubernetes(K8s)环境集成 Arthas
方案 1:使用 arthas-k8s 工具(推荐)
helm repo add arthas https://alibaba.github.io/arthashelm install arthas arthas/arthas-k8s一键 attach:
arthas-k8s attach myapp-0方案 2:在 Deployment 中预装 Arthas
apiVersion:apps/v1kind:Deploymentmetadata:name:myappspec:replicas:3template:spec:containers:-name:appimage:myapp:latestcommand: ["/bin/sh"]args:-"-c"-| java -jar /app.jar & sleep 15 java -jar /opt/arthas/arthas-boot.jar --tunnel-server 'ws://tunnel-server:7777/ws' --app-name myapp五、多机/多 Pod 集中管理:Arthas Tunnel(推荐)
架构图(Mermaid)

优势
• 统一入口,无需 SSH • 支持多租户、权限控制 • 可记录诊断会话,便于审计
六、常用命令速查表(Arthas 快速上手)——实战扩展版

七、最佳实践建议

八、总结

Arthas 是每个 Java 工程师都应掌握的“线上救命工具”。
结合 离线安装 + Docker/K8s 集成 + arthas-tunnel,你将拥有:
随时可诊断、全局可监控、问题秒定位 的强大能力!
立即行动建议:
• 下载 arthas-boot.jar放入项目根目录• 修改 Dockerfile预装 Arthas• 部署 arthas-tunnel-server,实现集中管理
从此,告别“重启加日志”,拥抱“实时诊断”新时代!

为了跟上AI时代我干了一件事儿,我创建了一个知识星球社群:ChartGPT与副业。想带着大家一起探索ChatGPT和新的AI时代。
有很多小伙伴搞不定ChatGPT账号,于是我们决定,凡是这三天之内加入ChatPGT的小伙伴,我们直接送一个正常可用的永久ChatGPT独立账户。
不光是增长速度最快,我们的星球品质也绝对经得起考验,短短一个月时间,我们的课程团队发布了8个专栏、18个副业项目:
简单说下这个星球能给大家提供什么:
1、不断分享如何使用ChatGPT来完成各种任务,让你更高效地使用ChatGPT,以及副业思考、变现思路、创业案例、落地案例分享。
2、分享ChatGPT的使用方法、最新资讯、商业价值。
3、探讨未来关于ChatGPT的机遇,共同成长。
4、帮助大家解决ChatGPT遇到的问题。
5、提供一整年的售后服务,一起搞副业
星球福利:
1、加入星球4天后,就送ChatGPT独立账号。
2、邀请你加入ChatGPT会员交流群。
3、赠送一份完整的ChatGPT手册和66个ChatGPT副业赚钱手册。
其它福利还在筹划中... 不过,我给你大家保证,加入星球后,收获的价值会远远大于今天加入的门票费用 !
本星球第一期原价399,目前属于试运营,早鸟价169,每超过50人涨价10元,星球马上要来一波大的涨价,如果你还在犹豫,可能最后就要以更高价格加入了。。
早就是优势。建议大家尽早以便宜的价格加入!
欢迎有需要的同学试试,如果本文对您有帮助,也请帮忙点个 赞 + 在看 啦!❤️ 在 GitHub猿 还有更多优质项目系统学习资源,欢迎分享给其他同学吧!
最后给读者整理了一份BAT大厂面试真题,需要的可扫码加微信备注:“面试”获取。

◆ ◆ ◆ ◆ ◆

牛逼啊!接私活必备的 400 多个开源项目(附合集)! Alibaba 开源内网高并发编程手册 IntelliJ IDEA这样配置,代码效率嗖嗖的~ Intellij IDEA 2021.2.3 最新版免费激活教程(可激活至 2099 年,亲测有效)
欢迎添加栈哥个人微信 ysle007 进粉丝群或围观朋友圈

扫码关注带你吊爆Java后端技术
夜雨聆风
