java 控制台输入_JAVA应用可视化诊断工具

JConsole:Java监视与管理控制台

通过JDK/bin目录下的jconsole.exe启动

1.内存监控:相当于可视化的jstat命令

监控区域有

PS Eden Space

PS Survivor Space

PS Old Space

Metaspace

Code Cache

Compressed Class Space

02ed224b69fbdc7d9e70557522396f0c.png

2.线程监控:相当于可视化的jstack命令

JHSDB:基于服务性代理的调试工具(java9)JCMD、JHSDB整合了上一篇的命令

HSDB图形界面启动方式

java9: jhsdb hsdb --pid LVMID

java8:在JDK/lib目录下命令行执行:

java -cp ./sa-jdi.jar sun.jvm.hotspot.HSDB 或java -classpath "%JAVA_HOME%/lib/sa-jdi.jar" sun.jvm.hotspot.HSDB

点击File-》Attach to Hotspot Process,输入进程ID

Java Threads窗口:

1:Inspect Thread:查看选中的线程对应的java.lang.Thread对象,可层级查看,输入地址查看

2:Stack Memery:查看当前线程的调用栈的内存,第一列是虚拟内存地址,第二列是该内存地址上的数据,第三列是对内存数据的注释,Interpreted frame表示一个调用栈帧

3:show Java stack trace:显示当前线程的调用链

4:Show thread infomation:查看指定线程的信息

5:find crashes:查找崩溃的线程

57e3eacc781a9105cc419f5739347b2b.png

Tools 选项

1:Class Browser:查看类,可用完整类名查询2:Code Viewer--根据内存地址查看信息

3:Computes Reserves ptrs:根据对象地址查找指向该对象的引用的地址

4:Deadlock Detection:用于死锁检测

5:Heap Paramters:显示年轻代和老年代的内存地址范围

6:Inspector:输入对象的内存地址,可查看该对象的所有属性信息

7:Monitor Cache Dump:查看当前进程使用的ObjectMonitor(用于synchronized 同步)的情况

8:Object Histogram:查看所有对象的对象数量及其占用的内存空间的统计,可搜索指定类

33dca7331b4ac57002359f272a3bd01d.png

windows选项

1:console:hsdb命令行控制台,即hsdb的命令行版本CLHSDB

可用命令进入:

java -classpath "%JAVA_HOME%/lib/sa-jdi.jar" sun.jvm.hotspot.CLHSDB

有如下命令

threads

thread 1

classes

class com.test.A

inspect

jstack

universe: 同Heap Paramtersscanoops 指定地址范围内搜索所有指定类型的所有实例

revptrs: 根据对象地址查看引用该对象的活跃对象的地址,这里的引用是指通过类全局属性(局部在线程中查看)

print: 输入Klass*, Method*的地址,可以打印该类或者方法,效果等同于Code Viewer选项

where threadid: 查看线程调用栈,具体到方法

a06b09ec07b7b0a091dd6191dc01b116.png

JAVA VisualVM(jvisualvm):

多合-故障处理工具

对性能影响小,需插件支持,插件网址访问不了

通过JDK/bin目录下的jvisualvm.exe启动

基本功能

1: 监视--相当于可视化的jstat命令

2:线程--相当于可视化的jstack命令

3:抽样器--主要查看实列分配数量,生产堆dump文件

4:prafiler--运行期间方法执行时间以及内存分析

抽样器-堆dump,在左侧对应进程下生成heapdump文件快照,可增量对比,可另存

7ca9cdb0a0784faf29e75b4e27a034db.png
4be18510950bdc2f161b67afcf4edef6.png

Java Mission Contrlo(JMC):可持续在线的监控工具

通过JDK/bin目录下的jmc.exe启动

Java Flight Recorder(JFR)--飞行记录仪:

内建在HotSpot虚拟机里面的监控和基于事件的信息搜集框架,对性能影响小

JMC一方面作为JMX控制台,显示来自虚拟机MBean提供的数据;另一方面作为JFR的分析工具,展示来自JFR的数据

文件--------连接前程序需要配置系统参数

elicpse debug configurations vm arguments

多个空格

-Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=ip

// 本地不需要

-Dcom.sun.management.jmxremote.port=9999

-Dcom.sun.management.jmxremote.ssl=false

-Dcom.sun.managementote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

-XX:+UnlockCommercialFeatures

-XX:+FlightRecorder// 取消锁定商业功能

a37be89736aa2c92a9ac0d7b3aef6196.png

JConsole,jvisualvm 连接远程需要配置tomcat的catalina.sh配置文件或者命令运行jar指定参数

-Djava.rmi.server.hostname=ip

#远程服务器ip

-Dcom.sun.management.jmxremote

#开启jmx

-Dcom.sun.management.jmxremote.port=999

#自定义jmx 端口号

-Dcom.sun.management.jmxremote.ssl=false # 是否需要ssl 安全连接方式

-Dcom.sun.management.jmxremote.authenticate=false

#是否需要秘钥

上面的是不需要密码的 生产环境不安全 如果想设置密码

1.进入$JAVA_HOME/jre/lib/management把jmxremote.password文件的后缀去掉,然后修改至600权限

2.chmod 600 jmxremote.access 打开编辑到最后

#monitorRole ROF

#controlRole R&D

去掉# 保存 (前面是用户名,后面是密码 可自己修改 用户在同目录 jmxremote.access文件内定义,默认有2个用户,可定义权限)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值