原先我们学习了jvm的命令行工具,现在我们来学习命令行的可视化工具jconsole:
为了测试我们启动原先的springboot项目
jconsole工具
jconsole(Java Monitoring and Management Console)是一种基于 JMX 的可视化监视、管理工具,它管理部分的功能是针对 JMXMBean 进行管理,由于 MBean 可以使用代码、中间件服务器的管理控制台或者所有符合 JMX 规范的软件进行访问
jconsole集成了线程与内存的可视化展示 .
1. 本地链接
启动
选择我们启动的进程,点击连接--不安全连接 进入到概览中如下:
点击内存
堆内存一般站内存的1/3以下才正常。
线程
解决死锁的方案
其余几个不详细介绍,感兴趣可以自己看看
2. 远程链接
(1). 将springboot项目打成jar包--mvn install
(2). 将jar拷贝到远程服务器上
(3). 配置好jvm 参数启动jar包
jvm参数说明:
- -Xms512m:JVM初始分配的堆内存
- -Xmx512m:JVM最大允许分配的堆内存,按需分配
- -XX:PermSize=64M:JVM初始分配的非堆内存
- -XX:MaxPermSize=128M:JVM最大允许分配的非堆内存,按需分配
- -XX:newSize=128M:新生代初始化内存的大小(注意:该值需要小于-Xms的值)。
- -XX:MaxnewSize=128M:新生代可被分配的内存的最大上限(注意:该值需要小于-Xmx的值)
- -Dcom.sun.management.jmxremote.port=9999 jmx远程连接端口
- -Djava.rmi.server.hostname=192.168.152.128(填写自己的ip)
- -Dcom.sun.management.jmxremote.ssl=false https验证为false
- -Dcom.sun.management.jmxremote.authenticate=false 不进行身份认证
启动jar包:
由于命令太长我们写成启动脚本run.sh
!#/bin/bash
nohup java -Xms512m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:MaxNewSize=128m -Dcom.sun.management.jmxremote.port=9999 -Djava.rmi.server.hostname=192.168.152.128 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -jar ./is-jvm-0.0.1-SNAPSHOT.jar &
赋予run.sh可执行权限
chmod +x run.sh
启动:
./run.sh
表示启动成功
连接:
出现如下图则表示连接成功
分析过程和本地连接是一样的,可以自己试试。