关于jvisualvm,jconsole的实践

jvm的监控仍是要掌握一下的,由于jvm是核心,须要可以随时了解jvm的运行状态,包括线程,内存等,本地监控就不说了,主要是远程监控,仍是有实际意义的java

jvm提供了两种链接方式:tomcat

一、jmx链接

这个比较简单,在启动的时候加入一下参数,无论是tomcat启动仍是java -jar启动都同样安全

-Djava.rmi.server.hostname=xx.xx.xx.xx -Dcom.sun.management.jmxremote.port=1111
-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

xx.xx.xx.xx是这台服务器的IP,1111是端口号,注意相关防火墙,安全组这些东西
复制代码

而后启动以后 在你本地的jdk的安装包的bin下面,有个jvisualvm.exe,点击启动 bash

右键远程链接,添加远程主机
输入IP

再右键,添加jmx链接

输入端口号,大功告成

二、jstatd链接

推荐用这个,为何呢,由于它支持一个很是好用的插件,visualGC插件服务器

工具>插件>可用插件>visualGC 安装好,若是是jmx链接,会以下显示jvm

因此须要支持jstatd, 怎么办呢,首先,找到jdk的这个目录 jdk1.8.0_221/jre/lib/security,有个java.policy文件,编辑加上这句话

permission java.security.AllPermission;
复制代码

网上许可能是本身新建一个policy文件,而后加上这句话,也能够 工具

而后在jdk的bin目录下,后台启动这个如下命令:

./jstatd -J-Djava.security.policy=xx/xx/java.policy -J-Djava.rmi.server.hostname=xx.xx.xx.xx &
复制代码
-J-Djava.security.policy=后面的是文件的绝对路径
-J-Djava.rmi.server.logCalls=true 打开日志,若是客户端有链接过来的请求,能够监控到,便于排错
-J-Djava.rmi.server.hostname=192.168.36.6 指明本机hostname对应的本机地址,确保该地址能够给客户机访问. 由于有的服务器hostname对应的ip不必定是外网能连上的 .最好在这里直接明确指定
-p 1200 指定服务的端口号,默认是1099 .也是可选参数
复制代码

而后大功告成,右键添加jstatd链接spa

一个默认一个定制,取决于你启动有没有指定端口,若是是默认端口,那么会自动创建链接,不须要额外操做

链接成功后,再看,内存使用状况尽收眼底

大功告成
相关文章
相关标签/搜索