某日 - 测试组 MM 要进行服务压测,询问本猿如何查看线上服务的jvm内存,cpu消耗情况。果断放下手中代码。为MM 耐心解惑 ~ ~
1、启动项目的 .sh 方法内,启动配置下 添加配置信息:
-Xms2048m -Xmx2048m 【可省略】
-Dcom.sun.management.jmxremote 【开启 jmx,jdk 1.5 前需要手动开启,后面jdk版本可省略】
-Dcom.sun.management.jmxremote.ssl=false 【不开启 ssl 通道】
-Dcom.sun.management.jmxremote.authenticate=false 【不开启验证】
-Dcom.sun.management.jmxremote.port=22221 【jmx的端口】
2、打开本地 Java VisualVM ,在本地 jdk的bin文件下
D:\Program files\Java\jdk1.8.0_31\bin
添加远程JVM连接
3、如果 遇到 无法使用 jmxrmi 错误,
本以为是防火墙的原因,专门查看了防火墙,发现防火墙是关闭状态,服务器的安全组中也开启了JMX接口。
查了资料,Java启动时,JMX会绑定一个接口,RMI也会绑定一个接口。而远程连接的JMX是随机的,随机的接口就被安全组拦截了。
java 7 后,可以 通过配置定死 rmi 端口,
-Dcom.sun.management.jmxremote.rmi.port=22222
配置后,重启服务。远程连接成功
原文地址:https://www.cnblogs.com/wgy1/p/10691599.html
时间: 2024-10-09 06:10:15