Arthas 超简单离线使用教程
简介
- Arthas 是阿里巴巴开源的一套监控java应用的工具
- 官网的文档地址: https://arthas.aliyun.com/doc/
- 官方的简介说明:
- Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。
当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:
这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
是否有一个全局视角来查看系统的运行状况?
有什么办法可以监控到JVM的实时运行状态?
怎么快速定位应用的热点,生成火焰图?
怎样直接从JVM内查找某个类的实例?
下载
- 建议下载全量包,避免仅下载boot无网络情况下无法使用
 https://arthas.aliyun.com/download/latest_version?mirror=aliyun
- 2022.3.22时最新的版本是 3.5.6
简单使用
- 注意这里仅介绍一些基本的使用(复杂的我还没学习)
- 第一次安装和启动
打开命令
注意1: 需要使用一个安装比较完整的jdk, 如果仅是jre可能无法运行
比如我这边的jdk的安装路径为
/myapp/server/runtime/java/x86_64linux/bin/java
那么我就可以如此运行
1. 将压缩包上传到某一个路径,并且解压缩:
比如我这边上传到了 /arthas/目录.
2. 执行命令为:
/myapp/server/runtime/java/x86_64linux/bin/java  -jar /arthas/arthas-boot.jar --target-ip 10.110.83.xx
注意: 可以直接使用jdk全路径的java 二进制文件执行 -jar 命令
注意: 可以直接使用 --target-ip 的方式暴露一下 arthas的端口出来. 默认为 3658
注意: 打开 3658的防火墙(建议仅打开部分,不要全部打开,避免安全问题)
简单使用
- 启动命令的效果
[root@centos7ver2009 ~]# /myapp/server/runtime/java/x86_64-linux/bin/java -jar arthas-boot.jar --target-ip 10.110.83.113
[INFO] arthas-boot version: 3.5.3
[INFO] Process 4318 already using port 3658
[INFO] Process 4318 already using port 8563
[INFO] Found existing java process, please choose one and input the serial number of the process, eg : 1. Then hit ENTER.
* [1]: 4318 ./server/runtime/caf-bootstrap.jar
  [2]: 8034 sun.tools.jconsole.JConsole
  [3]: 4406 ./dmp-datafactory.jar
  [4]: 4615 ./runtime/rtf-operations-management-bootstrap.jar
  [5]: 4317 ./runtime/rtf-operations-management-bootstrap.jar
1
[INFO] arthas home: /root/.arthas/lib/3.5.6/arthas
[INFO] The target process already listen port 3658, skip attach.
[INFO] arthas-client connect 10.110.83.113 3658
  ,---.  ,------. ,--------.,--.  ,--.  ,---.   ,---.
 /  O  \ |  .--. ''--.  .--'|  '--'  | /  O  \ '   .-'
|  .-.  ||  '--'.'   |  |   |  .--.  ||  .-.  |`.  `-.
|  | |  ||  |\  \    |  |   |  |  |  ||  | |  |.-'    |
`--' `--'`--' '--'   `--'   `--'  `--'`--' `--'`-----'                          
wiki       https://arthas.aliyun.com/doc
tutorials  https://arthas.aliyun.com/doc/arthas-tutorials.html
version    3.5.6
main_class
pid        4318
time       2022-03-22 08:08:40
简单使用
- 注意可以使用网页端也可以实名 shell 进行处理. 如果有堡垒机比较复杂,建议可以打开端口使用网页进行监控
- 注意arthas监控会造成一定程度的性能下降.强烈不建议用于高压力的高峰时段生产环境
- 打开网页 比如我这边就是 http://10.110.83.xx:3658
- 效果图为:
  
- 可以直接在黑框里面输入命令进行调试
重要命令介绍
help
打印命令帮助
dashboard
会展示 线程和内存信息.
cls
清空已有的内容
thread
显示所有的进程信息
thread -b
打印被锁的进程
thread -n 10
打印占用CPU最多的十个进程
jvm
打印java的信息
profiler start / profiler stop
打印火焰图, 有一个默认转储的路径.
sysprop
打印jvm相关参数信息
Arthas 超简单离线使用教程的更多相关文章
- 超简单的JNI——NDK开发教程
		不好意思各位,我按照网上一些教程进行JNI开发,折腾了半天也没成功,最后自己瞎搞搞定了,其实超简单的,网上的教程应该过时了,最新版的AS就包含了NDK编译的功能,完全不用手动javah,各种包名路径的 ... 
- 程序员,一起玩转GitHub版本控制,超简单入门教程 干货2
		本GitHub教程旨在能够帮助大家快速入门学习使用GitHub,进行版本控制.帮助大家摆脱命令行工具,简单快速的使用GitHub. 做全栈攻城狮-写代码也要读书,爱全栈,更爱生活. 更多原创教程请关注 ... 
- GitHub这么火,程序员你不学学吗? 超简单入门教程 【转载】
		本GitHub教程旨在能够帮助大家快速入门学习使用GitHub. 本文章由做全栈攻城狮-写代码也要读书,爱全栈,更爱生活.原创.如有转载,请注明出处. GitHub是什么? GitHub首先是个分布式 ... 
- 【STM32H7教程】第28章       STM32H7时间关键代码在ITCM执行的超简单方法
		完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第28章 STM32H7时间关键代码在ITCM执行 ... 
- 超简单!pytorch入门教程(五):训练和测试CNN
		我们按照超简单!pytorch入门教程(四):准备图片数据集准备好了图片数据以后,就来训练一下识别这10类图片的cnn神经网络吧. 按照超简单!pytorch入门教程(三):构造一个小型CNN构建好一 ... 
- (超简单)VScode配置C/C++环境图文教程(Windows系统下)
		(超简单)VScode配置C/C++环境图文教程(Windows系统下) 本文参考文章 Visual Studio Code (vscode) 配置 C / C++ 环境 下载VScode.下载Min ... 
- 【elasticsearch】(2)centos7 超简单安装elasticsearch 的监控、测试的集群工具elasticsearch head
		elasticsearch-head是elasticsearch(下面称ES)比较普遍使用的可监控.测试等功能的集群管理工具,是由H5编写的单独的网页程序.使用方法网上很多,这里教大家一个超简单安装h ... 
- eclemma怎么安装 eclemma的安装与简单使用图文教程(附下载)
		来自于:https://www.jb51.net/softjc/628026.html 一. 安装 有两种安装方法 1. 下载安装(推荐) 地址: http://sourceforge.net/pro ... 
- 史上最简单的 SpringCloud 教程 | 终章
		https://blog.csdn.net/forezp/article/details/70148833转载请标明出处:http://blog.csdn.net/forezp/article/det ... 
- 超简单Windows安装Scrapy (仅需一步)
		网上很多关于windows安装Scrapy的教程都非常的繁琐,请看我给大家分享的教程,非常简单 一步完成. 超简单的安装方法: 下载地址: https://www.continuum.io/downl ... 
随机推荐
- 关于GaussDB(DWS)的正则表达式知多少?人人都能看得懂的详解来了!
			摘要:GaussDB(DWS)除了支持标准的POSIX正则表达式句法,还拥有一些特殊句法和选项,这些你可了解?本文便为你讲解这些特殊句法和选项. 概述 正则表达式(Regular Expression ... 
- 应用数仓ODBC前,这些问题你需要先了解一下
			摘要:ODBC为解决异构数据库间的数据共享而产生的,现已成为WOSA的主要部分和一种数据库访问接口标准. 本文分享自华为云社区<GaussDB(DWS) ODBC 问题定位指南>,作者: ... 
- Solon2 之基础:四、应用启动过程与完整生命周期
			串行的处理过程(含六个事件扩展点 + 两个函数扩展点),代码直接.没有什么模式.易明 提醒: 启动过程完成后,项目才能正常运行(启动过程中,不能把线程卡死了) AppBeanLoadEndEvent ... 
- bat cmd 无效参数/选项 - deleting
			Window bat expdp 数据库定时任务逻辑备份数据库 定时删除N天前的旧文件 Linux shell crontab expdp 定时任务逻辑备份数据库 定时删除旧文件 错误配置 forfi ... 
- Kubernetes(K8S) 集群安全机制
			概述 访问K8S集群,需要经过三个步骤完成具体操作 认证 鉴权(授权) 准入控制 进行访问时,过程中需要经过 ApiServer,做统一协调,比如门卫,访问过程中需要证书.token.或者用户名+密码 ... 
- MetaGPT day01:  MetaGPT作者代码走读、软件公司初始示例
			LLM发展历史 - 2013年word2vec提出,但效果不好 - 2017年Transformer结构提出,降低网络复杂度 - 2018年BERT预训练语言模型效果显著提升 - 2019年GPT-3 ... 
- Python | __init__.py的神奇用法
			0._init_.py 在Python工程里,当python检测到一个目录下存在_init_.py文件时,python就会把它当成一个模块(module).Module跟C++的命名空间和Java的P ... 
- iview+vue 加载进度条
			效果:浏览器最上方出现一个进度条. main.js import Vue from 'vue' import ViewUI from 'view-design'; import router from ... 
- uni-app 从入门到放弃(持续更新)
			https://blog.csdn.net/weixin_33940102/article/details/91460204 
- Docker 魔法解密:探索 UnionFS 与 OverlayFS
			本文主要介绍了 Docker 的另一个核心技术:Union File System.主要包括对 overlayfs 的演示,以及分析 docker 是如何借助 ufs 实现容器 rootfs 的. 如 ... 
