jvisualvm用来监控运行时内存变化,资源消耗是个不错得java自带工具

位于D:\Program Files\Java\jdk1.8.0_45\bin 自己jdk得bin目录下,还有很多其他得工具(jmap查询内存)

jvisualvn监控本地应用程序无需配置,直接找到对应得程序pid打开就好了

远程监控需要一些配置:

  程序得启动配置:

-Djava.rmi.server.hostname=120.55.163.189(启动程序得ip)

-Dcom.sun.management.jmxremote.rmi.port=9090(端口)

-Dcom.sun.management.jmxremote.port=9090

-Dcom.sun.management.jmxremote.ssl=false

-Dcom.sun.management.jmxremote.authenticate=false

-Xmx6144m -Xms6144m -Xmn4608m (此处为启动内存配置,以上为jvisualvm配置)


如果端口(9090)不开放得话,需要进行代理访问,以xshell为例

jvisualvm配置_用户名

经过代理,我们只需监听5070端口,就可以经过xshell代理到目标机得9090端口,进行内存监控了


-Djava.rmi.server.hostname=192.168.233.132

-Dcom.sun.management.jmxremote.port=1232  指的是JVisualVM要连接的端口,服务端需要保证这个端口没有被占用

-Dcom.sun.management.jmxremote.rmi.port=1240 很重要,代表rmi启动的端口,如果不写rmi会随机启动一个端口

-Dcom.sun.management.jmxremote.authenticate=true 是否开启权限验证,如果开启需要有用户名和密码

-Dcom.sun.management.jmxremote.access.file=./jxmremote.access   (账号文件 注意修改权限 内容:​​admin readwrite​​)

-Dcom.sun.management.jmxremote.password.file=./jxmremote.password  (密码文件 注意修改权限 内容:​​admin 123456​​)

-Dcom.sun.management.jmxremote.ssl=false false 是否开启SSL



jvisualvm配置_用户名_02


查询程序内存:jmap -heap pid


-Djava.rmi.server.hostname=192.168.0.15 代表绑定本机的IP地址,如果想外网访问,请绑定外网IP

-Dcom.sun.management.jmxremote.port=8999 指的是JVisualVM要连接的端口,服务端需要保证这个端口没有被占用

-Dcom.sun.management.jmxremote.ssl=false 是否开启SSL

-Dcom.sun.management.jmxremote.authenticate=true 是否开启权限验证,如果开启需要有用户名和密码

-Dcom.sun.management.jmxremote.password.file=…/conf/jmxremote.password 指定用户名和密码的文件

-Dcom.sun.management.jmxremote.access.file=…/conf/jmxremote.access 指定用户的权限的文件

-Dcom.sun.management.jmxremote.rmi.port=8999 很重要,代表rmi启动的端口,如果不写rmi会随机启动一个端口