JVM可视化监测⼯具jconsole⼊门说明
jconsole 是基于 jmx 之上的⼀个 jvm 的监控⼯具。⼀个 java GUI 监视⼯具,可以以图表化的形式显⽰各种数据。并可通过远程连接监视远程的服务器 VM。⽤ java 写的 GUI 程序,⽤来监控 VM,并可监控远程的 VM,⾮常易⽤,⽽且功能⾮常强。在 Mac 下命令⾏⾥打jconsole,选则进程就可以使⽤它了。
jconsole 主要监控 JVM 的概览、内存、线程、类、vm概要、MBean等内容。
⼀、运⾏jconsole⼯具
如果是本地环境,我们直接命令提⽰符窗⼝输⼊ jconsole 即可打开 jconsole GUI 程序(java环境变量已经配置好,如未配置好可以java->bin⽬录下双击jconsole也可运⾏)。
如果监测远程linux的tomcat服务器,需要在catalina.sh加⼊如下配置:
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
⼆、jconsole使⽤说明
在使⽤前最好对线程、堆栈有充分的认识,否则即使有问题也⽆从⼊⼿分析。
其中 VM 选项卡中显⽰的内容⾮常的多。在此选项卡中提供的信息包括以下内容。
摘要
运⾏时间 :开始以来,Java虚拟机的时间总额。
进程的CPU时间 :Java VM的开始,因为它消耗的CPU时间总量。
编译总时间 :累计时间花费在JIT编译。
主题
活动线程 :⽬前现场守护线程,加上⾮守护线程数量。
峰值 :活动线程的最⾼数⽬,因为Java虚拟机开始。
守护线程 :当前的活动守护线程数量。
总线程 :开始⾃Java虚拟机启动的线程总数,包括⾮守护进程,守护进程和终⽌的线程。
当前类装载 :⽬前加载到内存中的类数⽬。
总类加载 :从Java VM开始加载到内存中的类总和,包括那些后来被卸载的类。
已卸载类总数 :从Java虚拟机开始从内存中卸载的类的数⽬。
内存
java开发可视化界面当前的堆⼤⼩ :⽬前所占⽤的堆的千字节数。
分配的内存 :堆分配的内存总量。
最⼤堆最⼤值 :堆所占⽤的千字节的最⼤数⽬。
待最后确定的对象:待最后确定的对象的数量。
花在执⾏GC的垃圾收集器 :包括垃圾收集,垃圾收集器的名称,进⾏藏品的数量和总时间的信息。
操作系统
总物理内存
空闲物理内存
分配的虚拟内存
其他信息
VM参数 :输⼊参数的应⽤程序通过Java虚拟机,不包括的主要⽅法的参数。
类路径是由系统类加载器⽤于搜索类⽂件的类路径。
库路径 :加载库时要搜索的路径列表。
引导类路径 :引导类路径是由引导类加载器⽤于搜索类⽂件。
看似 jconsole 的操作功能⽐较少,但实际上包含⾮常多的内容。
JConsole 会消耗⼤量系统资源,因此 Oracle 建议仅在⽤于创建原型的开发环境中使⽤它。还建议使⽤远程监控将 JConsole 应⽤程序与所监控的平台隔离。因此线上使⽤的⼈⾮常的少,⽹上的相关教程也不是很多。
最后简单列举下⼏种常见的线程
[main] 主线程
[http-nio-8080-exec-10] http请求线程
[DefaultQuartzScheduler_QuartzSchedulerThread] 定时线程
[DefaultQuartzScheduler_Worker-1]
[Timer-3] 定时线程?(待确认)
[Catalina-utility-2] ?

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。