loong - Java 命令 - jconsole
jconsole命令是Java开发环境(JDK)自带的图形化监视工具,它提供了一个友好的用户界面,用于可视化地监控和管理Java应用程序。它可以实时显示Java应用程序的性能指标、内存使用情况、线程状态等信息,还可以进行远程监控。
使用jconsole命令可以启动Java虚拟机(JVM),并以图形化的方式监视JVM的运行状况。图形界面中提供了各种监视面板,展示当前JVM的CPU使用率、内存使用情况、GC状态等,同时可以查看线程、类、MBean等信息。
除此之外,jconsole还提供了常规操作管理Java应用程序的功能,例如观察垃圾回收、查看堆内存使用情况、分析线程的执行情况等。此外,如要添加可扩展性,则可使用MBeans控制进一步管理应用程序。
jconsole是一种功能齐全、简单易用的监控工具,能够帮助开发团队及时发现并解决Java应用程序中的性能问题。
基本语法
jconsole [optionally, hostname:port or service:jmx:rmi:///…]
参数说明
- optionally, hostname:port or service:jmx:rmi:///…:可选参数,用于连接到要监控的Java进程。如果忽略此参数,则会打开一个对话框,允许您选择要监视的进程。
Window环境
1.启动 jconsole
在 windows 下我们可以直接找到 JDK 的所在目录,去
/bin
目录下找到jconsole.exe
双击运行即可启动之后可以看到界面上有两个选择,一个是 本地进程 ,另一个是 远程进程
本地进程:相对于开启 JConsole 的计算机,无需设置任何参数就可以被本地开启的 JConsole 连接(Java SE 6 之后无需设置,之前还要设置运行时参数 -Dcom.sun.management.jmxremote)
远程进程:输入远程连接地址,格式是 ip:port(注意 port 是监听端口不是服务端口)和用户名、口令(如果需要)即可连接进入监听界面。
Linux环境
1. 设置启动参数
#注意: 这个端口号不能与程序端口一样,需要单独的,不重复的端口号,否则会报`端口被占用` 的错误,还有就是你服务器的防火墙没关的话还要在防火墙中开发该端口,其次如果你使用的服务器是云服务器的话,还需要在云服务器上开发该端口。
# 远程服务器ip,即本机ip,不建议用 localhost、127.0.0.1
-Djava.rmi.server.hostname=XXX.XXX.XXX.XXX
# 允许 JMX 远程调用
-Dcom.sun.management.jmxremote
# 自定义 JMX 端口号
-Dcom.sun.management.jmxremote.port=8899
# 是否需要 ssl 安全连接方式
-Dcom.sun.management.jmxremote.ssl=false
# 是否需要密钥
-Dcom.sun.managent.jmxremote.authenticate=false
2.创建配置文件
# 查找java安装路径
which java
#`%JAVA_HOME%/jre/lib/management` 目录下查看是否有 `jmxremote.password` 文件
# 复制文件
cp jmxremote.password.template jmxremote.password
# 编辑
vim jmxremote.password
# 最后两行 # 注释去掉
# monitorRole 是查看角色(也是登录用户名,在 access 文件中),拥有只读权限,QED 是设置的密码。
# controlRole 是控制用户(也是登录用户名,在 access 文件中),拥有读写权限,R&D 是设置的密码。
monitorRole QED
controlRole R&D
# 赋权
chmod 600 jmxremote.password
java -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.229.5 -Dcom.sun.management.jmxremote.port=8899 -Dcom.sun.managent.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -jar xxx.jar