开发环境:java
win10 64位 ,idea 2018.1, JDK8ide
测试环境:测试
RHEL 6.5 JDK8idea
Jconsole监控:.net
在启动java程序的时候指定jconsole的端口:线程
nohup /usr/java/jdk1.8.0_161/bin/javanetty
-Dcom.sun.management.jmxremote.port=61232code
-Dcom.sun.management.jmxremote.authenticate=false进程
-Dcom.sun.management.jmxremote.ssl=false ip
-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来进行查看。