在我一开始看郝斌老师视频学习java 的时候,觉得郝斌老师还是挺厉害的,因为他敲代码不用IDE,用notepad++ 之类的敲代码,用javac 编译。
其实javac java 这些都是jdk原生提供的一些工具,当然还远远不止这些
打开java home 的bin目录 你就能看到包括java javac等在内的java提供的工具
其中有一个就是我今天介绍的 jvisualvm
这个工具可以用来监控本地,或者是远程的java 的程序的运行状态
软件打开的界面如下图:
这个软件可以监控本的java 进程和远程的java 进程
软件界面的左上角也有显示 有两个可以折叠的标签:本地+ 远程
其中在本地可以看到2个其中一个是visualVM 本身,还有一个是我本地运行的idea
在远程有2个ip,这2个ip是我的阿里云的ip,我可以在上面发布一些应用
ok,今天就以阿里云为例,演示一下在阿里云上面远程监控java程序.
1.首先随便上传一个jar 到阿里云
2.运行java程序,但是在运行的时候
java -Djava.rmi.server.hostname=106.15.206.82 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -jar demo-0.0.1-SNAPSHOT.jar
这个命令指定了远程的阿里云主机ip和打开的主机端口 等信息
3.在远程上面右击
选择添加远程主机
然后,填入ip信息
在添加好的主机上面 右击
添加以下信息
点击确定
这个里面就可以看到很多的信息了,包括jvm的参数,等等
还可以看线程,cou 垃圾回收等信息
在件事界面可以看到以下信息:
看看这个软件是不是瞬间觉的逼格变高了,相对于以前jinfo 苦逼的命令行查看程序的运行信息
这个软件以图形化这种直观的形式给你呈现出 java 应用程序的状态信息,看着这图就觉的很开心
线程界面可以看到java程序里面的额线程信息
线程的状态,运行的时间等等
抽样器可以对程序进行 cpu 内存等信息的抽样
这张图片也是非常的库 visualGC 我远程的阿里云不支持这个功能,百度了看下有些地方是需要设置下的,所以这里显示的是本地的
这个图可以看到 java里面内存的各个区的大小,可以看到里面的数据是动态变化的,非常的漂亮.
这个插件式需要安装的
点击工具–>插件 就可以安装使用
ok,简单的总结下班,这个软件给我的感觉还是很酷的,界面风格都是图形化的,逼格很高,很漂亮
很多的信息一次性的在软件上全部直观的给你展示出来,不需要苦逼的手动敲代码去查看
是一款非常漂亮的java监控工具
但是在现实环境中很少见到有人用,可能觉的占用资源吧,或者一天到晚开在哪里,叫人天天去看这个软件?实时看他的状态?有点不太现实吧。
还有一种可能就是了解的人少,很多人都不太关注这个软件吧。