易语言可以做网站管理系统吗,手机怎么做黑网站,电脑上做网站,开源网站建设实习心得arthas 使用问题汇总 1、arthas查看不到java进程1.1、首先要保证你的环境变量配置是正确的1.2、jps 也看不到java进程 2、离线安装问题3、如何使用arthas 1、arthas查看不到java进程
1.1、首先要保证你的环境变量配置是正确的 java -verionjavac -version 都能正常显示
[rootd… arthas 使用问题汇总 1、arthas查看不到java进程1.1、首先要保证你的环境变量配置是正确的1.2、jps 也看不到java进程 2、离线安装问题3、如何使用arthas 1、arthas查看不到java进程
1.1、首先要保证你的环境变量配置是正确的 java -verionjavac -version 都能正常显示
[rootdb arthas]# java -version
java version 1.8.0_181
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
[rootdb arthas]#
[rootdb arthas]# javac -version
javac 1.8.0_181
[rootdb arthas]#1.2、jps 也看不到java进程
这就尴尬了jps为什么不显示已经启动的Java进程 一般来说java程序启动之后会在/tmp/hsperfdata_[用户名]目录下创建一个以该进程PID为名称的目录该PID下放一些相关信息。jps就是去该目录去获取进程的。那我们cd /tmp/hsperfdata_root/(我用的root用户) 去看看果然该目录没有对应PID的目录。 原因 1、磁盘读写、目录权限问题
若该用户没有权限写/tmp目录或是磁盘已满则无法创建/tmp/hsperfdata_userName/pid文件。或该文件已经生成但用户没有读权限
2、临时文件丢失被删除或是定期清理 对于linux机器一般都会存在定时任务对临时文件夹进行清理导致/tmp目录被清空。这也是该现象主要的原因。常用的可能定时删除临时目录的工具为crontab、redhat的tmpwatch、ubuntu的tmpreaper等等 这个导致的现象可能会是这样用jconsole监控进程发现在某一时段后进程仍然存在但是却没有监控信息了。
3、java进程信息文件存储地址被设置不在/tmp目录下 上面我们在介绍时说默认会在/tmp/hsperfdata_userName目录保存进程信息但由于以上1、2所述原因可能导致该文件无法生成或是丢失所以java启动时提供了参数(-Djava.io.tmpdir)可以对这个文件的位置进行设置而jps、jconsole都只会从/tmp目录读取而无法从设置后的目录读物信息。
关于设置该文件位置的参数为-Djava.io.tmpdir
其他 /tmp/hsperfdata_userName/pid文件会在对应java进程退出后被清除。如果java进程非正常退出如kill -9那么pid文件会被保留直到执行一次java命令或是加载了jvm程序的命令如jps、javac、jstat会将所有无用的pid文件都清除掉
如何解决 1、虽然我在java程序启动过程修改了-Djava.io.tmpdir参数把.pid文件位置修改在了/tmp/hsperfdata_userName目录下但是重启程序后只生成了一个带有java程序端口的文件夹使用jps仍旧找不到。 2、此时可以重启服务器这样虽然找得到但是代价太大不建议。 3、最后我采用的方式是去自己的java程序安装路径下找到tmp文件夹具体路径可在自己的java程序启动脚本中找到下对应的.pid文件然后复制一份该文件到/tmp/hsperfdata_userName下面然后再使用jps就可以找到对应的java进行了Arthas也能顺利启动了。
我是使用第二种方法
2、离线安装问题
很多环境不能访问外网会导致在线安装不了。
解决方法
1、进入到/Users/herman/.arthas/lib/3.1.7/arthas路径下把所有的内容打包上传到服务器。 2、解压到用户目录下。 3、进入到/root/.arthas/lib/3.7.1/arthas 4、赋权限 chmod x as.sh
5、执行./as.sh
3、如何使用arthas
Arthas - Java 线上问题定位处理的终极利器