jvisualvm_使用jstatd连接远程linux应用
【1】确定linux系统正确安装了ssh
# sudo ps -e | grep ssh
①注意使用root,使用$会报如下错误:
[appadmin@webcsuat2 ~]$ sudo ps -e | grep ssh
[sudo] password for appadmin: //此处输入appadmin 的登录密码
appadmin is not in the sudoers file. This incident will be reported.
正确安装的话,会如下所示:
【2】配置安全访问文件
①新建 jstatd.all.policy(名称可以自拟,统一命名增加文件可读性)文件,置于JAVA_HOME/bin/文件夹下;
注:当远程linux服务器上有多个jdk时,需要确定哪一个才是压测系统Java进程使用到的jdk环境,这时可以使用“ps -ef | grep java”来确定JAVA_HOME,如下,pid = 17268的进程为Java进程,/Data/software/jdk1.8.0_65/为正确的JAVA_HOME;
② jstatd.all.policy文件的内容如下;
grant codebase "file:${java.home}/../lib/tools.jar"{ permission java.security.AllPermission; };
③启动远端jstatd,使用后台执行命令:jstatd -J-Djava.security.policy=jstatd.all.policy &,正确执行后,会回显一个后台进程pid,如下:
【3】使用jvisualvm连接远程linux
①添加远程主机:打开本地JDK/bin下的jvisualvm.exe应用程序后,“远程”→“添加远程主机”→输入“远程主机IP”进行添加;
②添加缺省jstatd连接:右击远程主机,选择“添加jstatd连接”,只需要添加缺省连接即可,默认端口为1099;
即可监控远程Java进程: