一、jdk环境的切换
在生产环境运行jps命令,是否jdk有这个命令,openjdk可能没有这个命令,需要切换为oracleJdk。同时jdk环境必须与“待诊断服务的jdk版本环境”保持一致。如果“待诊断服务的jdk版本环境”的bin中有jps命令,直接将本地环境的jdk改为“待诊断服务的jdk版本环境”。
vi ~/.bashrc |
在文末添加配置
export JAVA_HOME=/usr/lib/jvm/jdk1.6 (根据jdk实际地址配) export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH |
然后保存退出。输入命令使之立即生效
source ~/.bashrc |
二、Arthas的下载和使用
2.1.下载
arthas的官网:https://arthas.aliyun.com
下载arthas-boot.jar,然后用java -jar的方式启动:
wget https://alibaba.github.io/arthas/arthas-boot.jar java -jar arthas-boot.jar |
启用arthas必须和待诊断服务必须在同一账号下。启动后会将java进程列出来
假如想要监控第一个进程,则输入1,再输入回车/enter。Arthas会attach到目标进程上,并输出日志:
2.2.dashboard
然后就可以输入命令进行各种操作,如查看dashboard,则输入dashboard并按回车即可。dashboard命令显示当前系统的实时数据面板,如CPU占比, 错误数, 线程池信息等
中断当前在执行的命令,ctrl + c即可。退出当前 Arthas 客户端执行exit或quit。
2.3.jad命令查看反编绎的源代码(指定类)
jad com.fjcs.oa.refuse.imp.createAndSubmitFlowInstanceThread |
返回反编译的类
2.4.trace链路追踪
trace命令渲染和统计整个调用链路上的所有性能开销和追踪调用链路,很方便的定位性能瓶颈:
trace 类名 方法名
trace com.nl.workflow.IWorkFlowMgmt createAndSubmitFlowInstance |
2.5.watch命令观察接口参数和返回值
watch com.rkyao.arthas.controller.ArthasController testControllerMethod "{params,returnObj}" -x 2