俗话说,工欲善其事必先利其器,对于jvm调优,如果没有几款强大的工具,无异于是盲人摸象了.
监控工具的话,Jdk本身其实自带很多可以监控的工具,而且功能强大,用这些基本就够了.
一款叫Jconsole,一款叫JVisualvm. 两款均放在你jdk的安装目录下的bin文件夹里.
以我电脑为例,它们存放在:C:\Program Files\Java\jdk1.8.0_172\bin
两者的话我更喜欢后者,jvisualvm,前者更为轻量,功能上的话后者更强大,可以两个都去试试.
如果需要连接监控你远程服务器上的java项目的话,可以在java启动时指定参数:
其中端口号你可以随意指定,然后jdk安装目录根据你自己服务器的安装目录作修改,修改后启动项目
java -Djava.rmi.server.hostname=192.168.174.128 -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.access.file=/usr/local/java/jdk1.8.0_172/jre/lib/management/jmxremote.access -Dcom.sun.management.jmxremote.password.file=/usr/local/java/jdk1.8.0_172/jre/lib/management/jmxremote.password -jar server-0.0.1-SNAPSHOT.jar
双击远程->添加
↓
我启动参数里选择的是不需要输入账号密码及ssl证书连接,所以这里直接输入IP+端口即可连接,生成环境下可以去配置,具体自行百度.
连接后就可以查看你想看的信息了,还可以在工具栏添加更多插件,可以说是很厉害了,你想要的都有!
下面重点介绍两款可以分析GC垃圾回收日志的工具:
工具1:http://gceasy.io/
一款在线分析工具,极度好用,百度,苹果等公司都在用,不多说了...
优化建议都会告诉你,全可视化数据,非常直观牛逼...
推荐指数五颗星,看图:
第二款工具叫:gcviewer,是一款开源的java编写的工具,开源在本地直接打开,比较方便快捷,但功能和逼格上都没有前者强大,推荐指数四颗星.
下载地址:https://github.com/chewiebug/gcviewer/wiki
值得注意的是,不管是使用工具1还是工具2,都需要按其格式要求导出GC日志,否则无法识别,我直接给出一条万金油,两个工具都可以识别的日志输出命令:
nohup java -jar -Xloggc:/root/outp/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps outp.jar &
#具体的存放目录/root/outp你可以随意指定,你自己找得到就行,gc.log命名也可以随便取,后缀.log不要变
关于工具我就先说到这里,当然如果你不喜欢用工具,觉得用命令比较方便或者逼格满满,那你可以继续用命令去人肉观察,常用的命令有:
jps jstat jmap jstack jhat等,感兴趣的话自行百度学习...