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为例
经过代理,我们只需监听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
查询程序内存: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会随机启动一个端口