使用JConsole压测监控服务器

方式一:配置启动参数

在服务器应用启动命令中加入下面配置

-Djava.rmi.server.hostname=10.xxx.xxx.xx   //本机ip
-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.port=10000 
-Dcom.sun.management.jmxremote.rmi.port=10000    //如果要监控服务器上必须添加rmi
-Dcom.sun.management.jmxremote.ssl=false    //不为ssl连接
-Dcom.sun.management.jmxremote.authenticate=false  //不开启验证

jar 包程序启动一般为

java -jar xxx.jar

加入参数后

java Djava.rmi.server.hostname=10.xxx.xxx.xx -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=10000 -Dcom.sun.management.jmxremote.rmi.port=10000 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false --jar xxx.jar

启动应用后,可通过命令查看对应监控端口是否启动

netstat -ano                     //查看全部端口占用情况
netstat -aon|findstr 5040        //查看指定端口占用情况

方式二:代码启动端口监控

在需要监控的服务中加入监控端口启动配置代码

//代码实现打开压测端口监控
@Configuration
@Slf4j
public class JMXRemoteConfiguration {

    @Value("${rmiRegistryPort}")
    private int rmiRegistryPort;   //需要开启监控的端口
    @Value("${jmxSwitch}")
    private boolean jmxSwitch;

    @Bean
    public void execute() {
        try {
            if (jmxSwitch) {
                LocateRegistry.createRegistry(rmiRegistryPort);
                InetAddress inetAddress = InetAddress.getLocalHost();
                String jmxHostname = inetAddress.getHostAddress(); //本机IP
                int rmiServerPort = rmiRegistryPort;
                // 获取MBeanServer
                MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
                JMXServiceURL serviceURL = new JMXServiceURL(
                        "service:jmx:rmi://" + jmxHostname + ":" + rmiServerPort + "/jndi/rmi://" + jmxHostname + ":" + rmiRegistryPort + "/jmxrmi");
                // 配置环境参数
                Map<String, Object> env = new HashMap<>();
                env.put(JMXConnectorServer.AUTHENTICATOR, null); // 禁用认证
                env.put("com.sun.management.jmxremote.ssl", false); // 禁用SSL
                // 创建并启动JMX连接器服务器
                JMXConnectorServer cs = JMXConnectorServerFactory.newJMXConnectorServer(serviceURL, env, mbs);
                cs.start();
                log.info("JMX remote monitoring enabled on port " + rmiRegistryPort + " with hostname " + jmxHostname);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

注意事项

检查要启动监控端口是否被占用

netstat -aon|findstr 端口

根据pid杀死进程

taskkill /pid 4628 -t -f

本地通过JConsole连接服务器查看服务器状态

  1. 通过telnet命令检查是否ip端口连通性
telnet 10.xxx.xxx.xx 10000
  1. 在打开JConsole连接服务器

在这里插入图片描述
因为启动配置设置不开启ssl连接和验证,直接输入ip:端口连接即可
在这里插入图片描述
连接成功后
在这里插入图片描述

  • 14
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追风少年浪子彦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值