前言
在上一期主要讲到JVM优化的概念及经验。这一节章节去讲述相关工具的基本使用。
VisualVM
JDK自带,VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量数据、跟踪内存泄漏、监控垃圾回收器、执行内存和 CPU 分析,同时它还支持在 MBeans 上进行浏览和操作。
Tomcat Jmx配置
/bin/catalina.sh
CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=jj.xx.yy.zz -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true"
- 替换其中的IP jj.xx.yy.zz 地址 
- 配置{jdk_path}/jre/lib/management/jmxremote.password 
直接复制jmxremote.password.template, 修改默认访问密码
- 设置访问属性 
chmod +w jmxremote.password chmod 0400 jmxremote.password
概述页面

主要信息
- 主机及端口 
- jvm参数信息 
监视界面

主要信息
- cpu指标 
如cpu是多核,如果是n核,这里显示的单核平均占用 在通过top命令,看到的是 乘上n的结果,VisualVM显示 10.2/4(核数) =2.5%

- 类加载数量 
- 堆及PerGen的大小 
- 类加载数量 
- 线程数 
操作
- 执行垃圾回收 
- 堆Dump 
线程界面

主要信息
- 实时及守护线程数 
- 线程状态 运行,休眠, 等待, 驻留, 监视 
抽样器界面

CPU监控
- 哪些方法是热点方法 
- 各个方法占用CPU时间及其比例 
内存监控

每个线程分配内存

VisualVM常用插件
安装插件
工具->插件

检查新版本
需要配置url,不然会报以下出错

在插件->设置页面填入合适的
https://visualvm.github.io/pluginscenters.html 在这个网站选择合适的插件地址

填入URL地址,确定

配置成功后,在可用插件列表

常用插件
- Visual GC 
- Jstatd 
- Threads Inspector 
- Tracer-Jvmstate , Collection, Jvm Probes 
重要插件
VIsual GC
查看服务GC状态,需要配置jstatd并启动
cd /usr/local/src/jdk1.8.0_131/bin/ vim jstatd.all.policy
加入以下代码
grant codebase "file:${java.home}/../lib/tools.jar" 
{ permission java.security.AllPermission; };如果没有配置{java.home},填写jdk的绝对路径也可行
在jdk.home/bin下启动
./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=ip.xx.yy.zz -J-Djava.rmi.server.logCalls=true
更改以上Ip ip.xx.yy.zz地址 指定服务的端口号,使用默认端口1099。确认1099没有防火墙拦截
选择目标机器,右键 ,添加jstated连接

VisualGC界面

注意点:
- 内存大小分情况 
- 主要关注 GC Time长短及间隔 
Tracer
可以查询Heap,PerGen,Classes, Threads的

如图
Tracer可以监控很多项目
- Heap 
- PerGen 
- Cleass 
- Treads 
- 等等 

利用VisualVm检查full GC
- VisualGC查看是否old Gen,Eden是否存在持续上升 
- Mbean查看 
- 利用sampler的分析内存采集,确定问题代码 
内存视图,查看当前哪些业务对象比较多,并存在一直递增的趋势
线程视图,查看哪些线程分配的内存最多
IntelliJ Idea集成VisualVm
- File ->Setting->Plugins->Browsers Repositrories 
- 搜索VisualVM Launcher 
- 安装, 重启Idea 
- 默认Run及Debug旁边,会出现Run With VisulaVm及DebugWith VisulaVm的按钮 

方便本地压测监控JVM情况
总结
本节主要讲解VisualVm的使用以及常用插件的使用,好的工具对于找到问题有事半功倍的效果。在实践中理解理论知识。
 
		

 随时随地看视频
随时随地看视频 
				 
				 
				 
				