开发环境:
win10 64位 ,idea 2018.1, JDK8
测试环境:
RHEL 6.5 JDK8
Jconsole监控:
在启动java程序的时候指定jconsole的端口:
nohup /usr/java/jdk1.8.0_161/bin/java
-Dcom.sun.management.jmxremote.port=61232
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Xms6g -Xmx6g -Xmn3g -jar ./runnable.jar
-Dio.netty.leakDetectionLevel=paranoid
> /dev/null 2>&1 &
说明:
-Dcom.sun.management.jmxremote.port=61232 指定访问的端口
-Dcom.sun.management.jmxremote.authenticate=false 关闭认证
-Dcom.sun.management.jmxremote.ssl=false 关闭ssl认证
注意上面的必须在一行执行。没有空格。
输入远程进程的IP地址和端口名称,例如:
11.8.12.123:61232
使用jvisualVM来进行监控:
在java的安装目录的bin下面新建一个配置文件:
vi jstatd.all.policy
输入下面的文字:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
保存。
启动服务在12030端口:
rmiregistry 12030 & jstatd -J-Djava.security.policy=jstatd.all.policy -p 12030 &
主机名称写上远程的主机ip
端口写上刚才启动的12030。
有一些线程可能不知道是哪里启动的,可以通过idea来进行查看。