快速安装arthas
curl -O https://alibaba.github.io/arthas/arthas-boot.jar
今天想把java的一个jar包放到linux上运行
把jar包上传上去后发现
-bash: java: command not found
找不到java命令?
看来linux上jdk有问题
1、检查一下是否安装了jdk,看来还没有安装jdk
2、下载java jdk,单独使用该java jdk 运行arthas(推荐)
下载上传到linux主机
把下载的jdk解压放在usr/webapp/目录下,建议创建jdk8安装目录
tar -zxvf jdk-8u152-linux-x64.tar.gz -C /home/webapp
编辑配置文件,配置环境变量
vim /etc/profile
在最后一行添加以下内容
export JAVA_HOME=(安装jdk的目录,可以先去该目录下使用 pwd 命令查看)
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
刷新配置文件
source /etc/profile
将jdk下的bin目录下的文件设置成可执行文件
chmod -Rf 777 /home/webapp/jdk1.8.0_152/bin
最后检查JDK安装是否成功
java -version
启动Jar包
nohup java -jar demo-0.0.1-SNAPSHOT.jar &
查看java应用的pid
ps -ef |grep java
arthas监控java进程
命令:java -jar arthas-boot.jar <pid>
java -jar arthas-boot.jar 12792
用arthas解决常见问题
内存泄漏
这个我们可以用dashboard命令来动态查看内存情况,ctrl+c可以停止刷新
常用命令
首先是我认为的“上帝视角”指令:Dashboard
通过这些,你可以对于整个程序进程有个直观的数据监控。
如果内存使用率在不断上升,而且gc后也不下降,后面还发现gc越来越频繁,很可能就是内存泄漏了。
heapdump --live G:/jvm.hprof
这个时候我们可以直接用heapdump命令把内存快照dump出来,作用和jmap工具一样
然后把得到的dump文件导入eclipse,用MAT插件分析就行了。
所以这里介绍一个MAT的独立工具,它是独立于eclipse的应用,下载地址是https://www.eclipse.org/mat/downloads.php,可以根据自己的系统选择版本。
查看线程命令:thread
用thread命令列出线程信息
这个命令会把所有现成按照cpu占用率从高到低列出来,如果线程过多就用-n参数
查看最忙的n个线程
thread -n 3
然后再通过thread id输出该线程的栈信息
Arthas 有如下功能:
评论 (0)